专利摘要:
ANIMATION OF A VISUAL REPRESENTATION THROUGH ACQUIRED ENTRY FROM THE USER. The data captured in relation to a human can be analyzed and applied to a visual representation of a user in such a way that the visual representation begins to reflect the behavioral characteristics of the user. For example, a system may have a capture device that captures data about the user in the physical space. The system can identify characteristics, trends, voice patterns, behaviors, gestures, etc. of user. Over time, the system can acquire trends from the user and intelligently apply animations to the user's avatar in such a way that the avatar behaves or responds according to the user's identified behaviors. The animations applied to the avatar can be animations selected from a library of prepackaged animations, or the animations can be inserted and registered by the user in the avatar's avatar library.
公开号:BR112012000698B1
申请号:R112012000698-3
申请日:2010-07-12
公开日:2020-12-15
发明作者:Kathryn Stone Perez;Alex Kipman;Nicholas D. Burton;Andrew Wilson
申请人:Microsoft Technology Licensing, Llc;
IPC主号:
专利说明:

Background
[0001] Several applications will display a visual representation that corresponds to a user, in which the user can control through certain actions, such as selecting buttons on a remote control or moving a controller in a certain way. Visual representation is a computer representation that typically takes the form of a two-dimensional (2D) or three-dimensional (3D) model and is rendered in various applications, such as computer games, video games, chats, forums, communities, messaging services instant and the like. The visual representation can be in the form of an avatar, an imaginary character, a cartoon or animal image, a cursor, a hand or the like. Many computing applications such as computer games, multimedia applications, office applications or the like provide a selection of predefined animated characters that can be selected for use in the application as the user's avatar. Typically, the animations performed by an avatar are selected from an animation library. Users can choose their avatars to perform specific animations from that library by pressing buttons or keys on a remote control, for example. summary
[0002] Techniques for intelligently training an avatar to perform animations by acquiring user input are revealed in the present invention. Over time, the avatar in the virtual space may appear to become a reflection of the user in the physical space, including the reflection of aspects of the user's traits, behaviors, trends, voice patterns, etc. For example, a system may have a capture device that captures data about the user in the physical space. The system can identify characteristics, trends, voice patterns, behaviors, gestures, etc. of user. Over time, the system can acquire a trend from the user and intelligently apply animations to the user's avatar in such a way that the avatar behaves or responds according to the user's identified behaviors. In this way, training an avatar of the animations to be performed can understand a user's input and model the avatar to look like the user.
[0003] The system can therefore render an avatar that looks like the user, whether or not the user is present in the physical space. In an exemplary mode, the animations applied to the avatar can be animations selected from a library of pre-packaged animations, such as those that come with a program, application or system, for example. The selected animations can be those that correspond to the user input acquired by the system. In another exemplary modality, the animations in the library can be animations inserted and registered by the user in the avatar's animation vocabulary. For example, the system or the user can reprogram an animation to reflect the user's actual movements or behaviors, captured by a capture device, for example. In this way, animations can be added or replaced in the avatar animation library.
[0004] This summary is provided to introduce a selection of biases in a simplified manner which are further described below in the Detailed Description. This summary is not intended to identify key resources or essential resources of the claimed subject, nor is it intended to be used to limit the scope of the claimed subject. Additionally, the claimed subject is not limited to deployments that address any or all of the disadvantages mentioned in any part of that disclosure.
[0005] Computer-readable systems, methods and means for modifying a visual representation according to this specification are further described with reference to the attached drawings, in which:
[0006] Figure 1 illustrates an exemplary modality of a target tracking, analysis and recognition system with a user playing a game.
[0007] Figure 2 illustrates an exemplary modality of a capture device that can be used in a target tracking, analysis and recognition system and incorporates animation and chaining merge techniques.
[0008] Figure 3 illustrates an exemplary modality of a computational environment in which the animation techniques described in this document can be incorporated.
[0009] Figure 4 illustrates another example of a computational environment in which the animation techniques described in this document can be incorporated.
[00010] Figure 5 A illustrates a skeletal mapping of a user that was generated from a depth image.
[00011] Figure 5B further illustrates details of the gesture recognizing architecture shown in Figure 2.
[00012] Figures 6A and 6B reveal an exemplary target tracking, analysis and recognition system of exemplary modalities for displaying a user avatar based on a history of that user's entries.
[00013] Figure 7A reveals two users who interact with each other remotely through their respective tracking, recognition and target systems.
[00014] Figure 7B reveals a first user who interacts with a second user avatar in which the second user is absent from the scene.
[00015] Figure 8 reveals an exemplary flow diagram of a method of collecting behavioral data in relation to user input.
[00016] Figure 9 reveals an exemplary flow diagram for a method of intelligently applying animations to a user avatar. Detailed Description of Illustrative Modalities
[00017] Techniques for rendering a visual representation of a user, such as an avatar, that behaves according to a user are revealed in the present invention. For example, systems and methods that comprise intelligently training an avatar to perform animations by acquiring a user trend through user inputs are revealed. The visual representation of the user can be in the form of an avatar, a cursor on the screen, a hand or any other virtual object that corresponds to the user in the physical space. A computer system can model and display a visual representation of the user by capturing data from a physical space. For example, the system may comprise a capture device that captures image data for a scene and a monitor that displays a visual representation that corresponds to a user in the scene. It may be desirable to initialize and / or customize a visual representation based on the user's physical characteristics. For example, the capture device can identify a user's physical traits and customize the user's avatar based on those identified traits, such as eye shape, nose shape, clothing, accessories.
[00018] To generate a representative model of a user in the physical space, the capture device can capture an image of the depth of the scene and scan targets or objects in the scene. In one embodiment, the capture device can determine whether one or more targets or objects in the scene correspond to a human target such as the user. To determine whether a target or object in the scene matches a human target, each target can be filled with a single color and compared to a pattern on a human body model. Each target or object that matches the human body model can then be scanned to generate an associated skeletal model. For example, a target identified as a human can be scanned to generate an associated skeletal model. The user's model, such as a skeleton or network model, can represent the user's body type, bone structure, height, weight or the like. The model can then be provided to the computing environment to track the model and render an avatar associated with the model.
[00019] The system can track the user and any movement in the physical space and identify the characteristics of the user that can be applied to the visual representation of the user. The characteristics identified may be indicative of user behaviors. For example, the system can identify physical characteristics, trends, voice patterns, gestures, etc. of user. The system can continue to track the user over time and apply modifications or updates to the user's avatar based on the history of the tracked data. For example, the capture device can continue to identify a user's behaviors and quirks, emotions, speech patterns or the like and apply this to the user's avatar. The fidelity of the rendered avatar, in relation to the similarity of the avatar, increases over time as the system collects historical data for that user.
[00020] The system, methods and components of avatar creation and customization described in this document can be incorporated into a multimedia console, such as a game console, or any other computing device on which you want to display a visual representation of a target, including, by way of example and without any intended limitation, satellite receivers, set top boxes, arcades, personal computers (PCs), portable phones, personal digital assistants (PDAs) and other portable devices.
[00021] Figures 1A and 1B illustrate an exemplary modality of a configuration of a target tracking, analysis and recognition system 10 that can employ techniques that track a history of user entries to generate an avatar that looks like the user. In the exemplary mode, a user 18 plays a boxing game. In an exemplary modality, system 10 can recognize, analyze and / or track a human target such as the user 18. System 10 can collect information related to the user's gestures in the physical space, as well as the physical traits and behavioral characteristics of the user. user.
[00022] As shown in Figure 1A, the target tracking, analysis and recognition system 10 can include a computational environment 12. Computational environment 12 can be a computer, system or game console or similar. According to an exemplary embodiment, the computing environment 12 can include hardware components and / or software components in such a way that the computing environment 12 can be used to run applications such as game, non-game or similar applications.
[00023] As shown in Figure 1A, the target tracking, analysis and recognition system 10 can additionally include a capture device 20. The capture device 20 can be, for example, a camera that can be used to visually monitor one or more users, such as user 18, in such a way that the gestures performed by one or more users can be captured, analyzed and tracked to execute one or more controls or actions in an application, as will be described in greater detail below.
[00024] According to one embodiment, the target tracking, analysis and recognition system 10 can be connected to an audiovisual device 16 such as a television, monitor, high definition television (HDTV) or the like that can provide audio and / or visual game or application for a user such as user 18. For example, computing environment 12 may include a video adapter such as a graphics and / or audio adapter such as a sound card that can provide audiovisual signals associated with the game application, non-game application or similar. The audiovisual device 16 can receive the audiovisual signals from the computing environment 12 and can then emit the visual and / or audio of the game or application associated with the audiovisual signals to the user 18. According to one modality, the audiovisual device 16 can be connected to the computing environment 12 via, for example, an S-video cable, a coaxial cable, an HDMI cable, a DVI cable, a VGA cable or the like.
[00025] As shown in Figure 1, the target tracking, analysis and recognition system 10 can be used to recognize, analyze and / or track a human target such as user 18. The movement of the visual representation can be controlled through mapping from the movement of the visual representation to the movement of the user in the physical space. The movement in the physical space can be a gesture that corresponds to a control in a system or application space, such as a virtual space and / or a game space. For example, user 18 can be tracked using the capture device 20 in such a way that the movements of user 18 can be interpreted as controls that can be used to affect the application that is run by the computing environment 12. The computing environment can determine which controls to run on an application running in the computing environment based, for example, on the user's gesture, recognized and mapped to the user's model. In this way, the user can control the movement of the avatar by making gestures in the physical space.
[00026] The captured movement can be any movement in the physical space that is captured by the capture device, such as a camera. The captured movement could include the movement of a target in physical space, such as a user or an object. The captured movement can include a gesture that becomes a control in an operating system or application. The movement may be dynamic, such as a running movement, or the movement may be static, such as a user who exerts little or no movement.
[00027] System 10 can transform an input for a capture device 20 into an animation, in which the input is representative of a user's movement, such that the animation is triggered by that input. In this way, user movements can map an avatar 40 in such a way that user movements in the physical space are performed by avatar 40. User movements can be gestures that are applicable to a control in an application. As shown in Figures 1A and 1B, in an exemplary mode, the application running in computational environment 12 may be a boxing game that user 18 may be playing.
[00028] Capture device 20 can capture data representative of user behavior. For example, the capture device can capture characteristics that are indicative of user behaviors. Such characteristics may include the user's body position, facial expressions, vocal commands, speech patterns, gestures or the like. The computational environment 12 can analyze the captured data and correlate user behaviors with contextual circumstances, such as user environment conditions, system or application status, user success / result in the application, active or inactive status of the user, or any other detectable circumstance. In this way, the system can acquire trends in user behavior, just as the user responds to various situations.
[00029] Computational environment 12 can use audiovisual device 16 to provide a visual representation of an avatar of player 40 that user 18 can control with his movements. The avatar of player 40 can have the characteristics of the user identified by the capture device 20, or system 10 can use the characteristics of a known boxer or depict the size of a professional boxer for the visual representation that maps the user's movements . According to an exemplary modality, the computational environment 12 and the capture device 20 of the target tracking, analysis and recognition system 10 can be used to recognize and analyze the punch of the user 18 in the physical space in such a way that the punch can be interpreted as a game control of player 40's avatar in the game space. For example, as shown in Figure 1B, user 18 can throw a punch in the physical space to make player 40's avatar deliver a punch in the playing space. The computing environment 12 can also use the audiovisual device 16 to provide a visual representation of an opponent boxer 38 to the user 18.
[00030] Other movements by the user 18 can also be interpreted as other controls or actions, such as controls hitting, writhing, changing positions, blocking, striking or punching a variety of different power punches. In addition, some moves can be interpreted as controls that can correspond to actions other than the control of the player's avatar 40. For example, the player can use moves to end, pause or save a game, select a level, view records, communicate with a friend, etc. In addition, a full range of user movement 18 can be available, used and analyzed in any way appropriate to interact with an application.
[00031] Multiple users can interact with each other from remote locations. For example, the visual representation of the opposing boxer 38 may be representative of another user, such as a second user in the physical space with user 18 or a network user in a second physical space. Alternatively, the system can render an avatar associated with a user whether or not the user is present in the physical space or interacting with the system / application. For example, a user's first avatar might be interacting with the user's second avatar. The first user can be present in the physical space, controlling the gestures and movements of the user's first avatar. However, the second user associated with the user's second avatar may not be present in the physical space. Using the second user's input history, the system can intelligently apply animations to the user's second avatar in such a way that the avatar resembles the behaviors acquired from the user's second inputs. The user's second avatar can resemble the second user, faithfully reflect the second user trend, habits and other characteristics applicable to the application. The first user can therefore have an experience in the virtual world with the user's second avatar which may be similar to the case where the second user is physically present and controls the user's second avatar.
[00032] In exemplary modalities, the human target such as user 18 can have an object. In such modalities, the user of an electronic game may be holding the object in such a way that the movements of the player and the object can be used to adjust and / or control game parameters. For example, the movement of a player holding a racket can be tracked and used to control a racket on the screen in an electronic sports game. In another example, the movement of a player holding an object can be tracked and used to control a weapon on the screen in an electronic combat game. A user's gesture or movement can be interpreted as controls that can correspond to actions other than the control of the player's avatar 40. For example, the player can use movements to end, pause or save a game, select a level, view records, if communicate with a friend, etc. Virtually any controllable aspect of an operating system and / or application can be controlled by movements of the target such as the user 18.
[00033] According to other exemplary modalities, the target tracking, analysis and recognition system 10 can interpret movements of the target to control aspects of an operating system and / or application that are outside the sphere of games. The user's gesture can be controls applicable to an operating system, non-game aspects of a game, or a non-game application. User gestures can be interpreted as object manipulation, such as controlling a user interface. For example, consider a user interface with blades or an interface with tabs vertically aligned from left to right, where selecting each blade or tab opens options for various controls within the application or system. The system can identify the user's hand gesture for movement of a tab, in which the user's hand in the physical space is virtually aligned with a tab in the application space. The gesture, including a pause, a grabbing movement and then a hand movement to the left, can be interpreted as selecting a tab and then moving it outward to open the next tab. Similarly, the system can acquire user behaviors from user input throughout the execution of any type of application. The system can animate the user's avatar to behave according to the entries acquired in that application or any other application.
[00034] Figure 2 illustrates an exemplary embodiment of a capture device 20 that can be used for target recognition, analysis and tracking, where the target can be a user or an object. According to an exemplary embodiment, the capture device 20 can be configured to capture video with depth information including a depth image that can include depth values using any suitable technique including, for example, flight time, structured light, stereo or similar image. According to one embodiment, the capture device 20 can organize the calculated depth information into "Z layers" or layers that can be perpendicular to a geometric Z axis that extends from the depth camera along its line of sight .
[00035] As shown in Figure 2, the capture device 20 can include an image camera component 22. According to an exemplary embodiment, the image camera component 22 can be a depth camera that can capture the image from depth of a scene. The depth image can include a two-dimensional (2-D) pixel area of the captured scene where each pixel in the 2-D pixel area can represent a depth value such as a length or distance, for example, in centimeters , millimeters, or the like of an object in the scene captured from the camera.
[00036] As shown in Figure 2, according to an exemplary embodiment, the imaging camera component 22 can include an IR light component 24, a three-dimensional (3-D) camera 26, and an RGB camera 28 that can be used to capture the depth image of a scene. For example, in flight time analysis, the IR light component 24 of the capture device 20 can emit infrared light over the scene and can then use sensors (not shown) to detect back-scattered light from the surface of one or more targets and objects in the scene using, for example, the 3-D 26 camera and / or the RGB 28 camera. In some embodiments, the flashed infrared light can be used in such a way that the time between a pulse of emitted light and a corresponding incoming light pulse can be measured and used to determine a physical distance from the capture device 20 to a particular location on targets or objects in the scene. In addition, in other exemplary embodiments, the phase of the emitted light wave can be compared with the phase of the incoming light wave to determine a phase shift. The phase shift can then be used to determine a physical distance from the capture device 20 to a particular location on targets or objects.
[00037] According to another exemplary embodiment, the flight time analysis can be used to indirectly determine a physical distance from the capture device 20 to a particular location on targets or objects by analyzing the intensity of the reflected light beam to the over time through various techniques including, for example, closed light pulse imaging.
[00038] In another exemplary embodiment, the capture device 20 can use a structured light to capture depth information. In such an analysis, standardized light (ie light displayed as a known pattern such as grid pattern or stripe pattern) can be projected onto the scene using, for example, the IR 24 light component. surface of one or more targets or objects in the scene, the pattern may become deformed in response. Such deformation of the pattern can be captured, for example, by the 3-D camera 26 and / or the RGB camera 28 and can then be analyzed to determine a physical distance from the capture device 20 to a particular location on targets or objects.
[00039] According to another embodiment, the capture device 20 may include two or more physically separate cameras that can view a scene from different angles, to obtain stereo visual data that can be resolved to generate depth information.
[00040] Capture device 20 may additionally include a microphone 30, or a microphone array. The microphone 30 may include a transducer or sensor that can receive and convert sound into an electrical signal. According to one embodiment, the microphone 30 can be used to reduce the feedback between the capture device 20 and the computational environment 12 in the target tracking, analysis and recognition system 10. Additionally, the microphone 30 can be used to receive signals from audio that can also be provided by the user to control applications such as game applications, non-game applications or the like that can be run by the computing environment 12.
[00041] In an exemplary embodiment, the capture device 20 may additionally include a processor 32 which may be in operational communication with the image camera component 22. Processor 32 may include a standardized processor, a specialized processor, a microprocessor or similar that can execute instructions that can include instructions to receive the depth image, determine whether a suitable target can be included in the depth image, convert the appropriate target into a skeletal representation or model of the target, or any other suitable instruction.
[00042] Capture device 20 may additionally include a memory component 34 that can store instructions that can be executed by processor 32, images or image frames captured by 3-D 26 camera or RGB 28 camera, or any other information , images or the like. According to an exemplary embodiment, the memory component 34 may include random access memory (RAM), read-only memory (ROM), cache, Flash memory, a hard disk or any other suitable storage component. As shown in Figure 2, in one embodiment, the memory component 34 can be a separate component in communication with the image capture component 22 and the processor 32. According to another embodiment, the memory component 34 can be integrated on processor 32 and / or image capture component 22.
[00043] As shown in Figure 2, the capture device 20 can be in communication with the computing environment 12 through a communication link 36. The communication link 36 can be a wired connection including, for example, a USB connection , a Firewire connection, an Ethernet cable connection or similar and / or a wireless connection such as an Ib, g, a or n 802.1 connection. According to one embodiment, the computing environment 12 can provide a clock for the capture device 20 which can be used to determine when to capture, for example, a scene via the communication link 36.
[00044] Additionally, the capture device 20 can provide the depth information and images captured, for example, by the 3-D camera 26 and / or by the RGB camera 28, and by a skeletal model that can be generated by the capture device 20 for the computing environment 12 via the communication link 36. The computing environment 12 can then use the skeletal model, depth information and captured images to, for example, control an application such as a game or a processor. word. For example, as shown, in Figure 2, the computational environment 12 can include a gesture library 192.
[00045] As shown in Figure 2, the computational environment 12 can include a gesture library 192 and a gesture recognition mechanism 190. The gesture recognition mechanism 190 can include a collection of gesture filters 191. Each filter 191 you can understand the information that defines a gesture along with the parameters, or metadata, for that gesture. For example, a pitch, which comprises the movement of one hand from behind the back of the body to the front of the body, can be deployed as a gesture filter 191 that comprises information that represents the movement of one of the user's hands behind the back of the body to the front of the body, as that movement would be captured by a depth camera. The parameters can then be defined for that gesture. Where the gesture is a pitch, a parameter can be a borderline speed that the hand reaches, a distance that the hand needs to travel (absolute, or relative to the size of the user as a whole), and a confidence rating by the recognizer mechanism on the fact that the gesture has occurred.These parameters for the gesture may vary between applications, between contexts of a single application, or within an application context over time.
[00046] The data captured by cameras 26, 28 and device 20 in the form of the skeletal model and the movements associated with it can be compared to gesture filters 191 in the gesture library 190 to identify when a user (as represented by the skeletal model ) performed one or more gestures. In this way, the inputs for a filter such as filter 191 can comprise something such as joint data about a user joint position, such as angles formed by the bones in the joint, RGB color data of the scene and rate of change of an aspect of the user. As mentioned, parameters can be defined for the gesture. The outputs of a 191 filter can comprise something such as the confidence that a particular gesture is being performed, the speed at which a gesture movement is made and an instant at which the gesture occurs.
[00047] Computational environment 12 may include a processor 195 that can process the depth image to determine which targets are in a scene, such as a user 18 or an object in the environment. This can be done, for example, by grouping pixels of the depth image that share a similar distance value. The image can also be analyzed to produce a skeletal representation of the user, where traces, such as joints and fabrics that lie between the joints are identified. Skeletal mapping techniques exist to capture a person with a depth camera and from there determine various points on the user's skeleton, hand joints, wrists, elbows, knees, nose, ankles, shoulders and where the pelvis meets the spine. Other techniques include transforming the image into a representation of the person's body model and transforming the image into a representation of the person's network model.
[00048] In one embodiment, processing is performed on the capture device 20 itself, and the raw image values of depth and color (where the capture device 20 comprises a 3-D 26 camera) are transmitted to the environment computational 12 via link 36. In another mode, processing is performed by a processor 32 coupled to camera 402 and then the analyzed image data is sent to computational environment 12. Still in another mode, both data raw image and the analyzed image data are sent to the computational environment 12. The computational environment 12 can receive the analyzed image data, but can still receive the raw data to run the current process or application. For example, if an image of the scene is transmitted over a computer network to another user, computational environment 12 can transmit raw data for processing by another computational environment.
[00049] Computational environment 12 can use gesture library 192 to interpret the movements of the skeletal model and to control an application based on the movements. Computing environment 12 can model and display a representation of a user, such as in the form of an avatar or a pointer on a display, such as a display device 193. Display device 193 may include a computer monitor, a television screen or any suitable display device. For example, a camera-controlled computer system can capture user image data and display user feedback on a television screen that maps the user's gestures. User feedback can be displayed as an avatar on the screen as shown in Figure 1. The movement of the avatar can be controlled directly by mapping the movement of the avatar to those movements of the user. User gestures can be interpreted to control certain aspects of the application.
[00050] According to an exemplary embodiment, the target can be a human target in any position such as standing or sitting, a human target with an object, two or more human targets, one or more attachments of one or more human targets or similar that can be scanned, tracked, modeled and / or evaluated to generate a virtual screen, compare the user with one or more stored profiles and / or to store profile information 198 about the target in a computational environment such as the computational environment 12. Profile information 198 can be in the form of user profiles, personal profiles, application profiles, system profiles or any other suitable method for storing data for later access. Profile information 198 can be accessible through an application or available throughout the system, for example. Profile information 198 can include lookup tables for loading specific user profile information. A virtual screen can interact with an application that can be run by the computing environment 12 described above in relation to Figure 1.
[00051] According to exemplary modalities, the search tables can include specific user profile information. In one embodiment, the computational environment such as computational environment 12 can include profile data stored 198 about one or more users in the lookup tables. The stored profile data 198 may include, but is not limited to, scanned or estimated body size targets, skeletal models, body models, voice samples or passwords, the age of the targets, previous gestures, target limitations and standard use by target of the system, such as, for example, a tendency to sit, be left-handed or right-handed or a tendency to stand very close to the capture device. This information can be used to determine if there is a match between a target in a capture scene and one or more user profiles 198 that, in one mode, can allow the system to adapt the virtual screen for the user, or adapt other elements of the gaming or computing experience according to profile 198.
[00052] One or more personal profiles 198 can be stored in a computational environment 12 and used in numerous user sessions, or one or more personal profiles can be created for only a single session. Users may have the option of establishing a profile in which they can provide information to the system such as a body or voice scan, age, personal preferences, tendency to use the right or left hand, an avatar, a name or the like. Personal profiles can also be provided for "visitors" who do not provide any information to the system other than stepping into the capture space. A temporary personal profile can be established for one or more visitors. At the end of a visitor session, the personal visitor profile can be stored or deleted.
[00053] As shown, in Figure 2, the computational environment 12 can include an avatar library 196 that comprises selectable animations for application to the user's avatar. User profile 198 may include an avatar library or otherwise be associated with an avatar library with specific animations for the user. Lookup tables can include user behaviors and trends in relation to various contextual circumstances. The profile can be used to apply animations to the user's avatar so that the avatar faithfully reflects the user's behavior.
[00054] The animations in the avatar library can comprise any characteristic that can be applied to an avatar. Features can be indicative of user behavior. In this way, the animation selected for application to user behavior can be selected to match user behaviors. Animations can include any of or any combination of speech or voice patterns, vocabulary, noise volumes, words, physical characteristics, movements or the like. Animations can comprise movement that can be dynamic, such as a running movement, or the movement can be static, such as a pose with little or no movement. The avatar library can be associated with a particular user or stored in a user profile, for example.
[00055] The animations in the avatar library 193 can be a main animation library. In an exemplary mode, the animations applied to the avatar can be animated with animations selected from a library of pre-packaged animations, such as those that come with a program, application, or system, for example. The animation selected for application to the user's avatar can be the one that corresponds to the user input acquired by the system to reflect certain behaviors. For example, the system can identify that the user tends to jump up and down in a certain context, such as when he succeeds in a game application. In this way, when the system identifies a similar set of contextual circumstances such as a similar state of the game (for example, success), the system can select an animation that reflects the jump up and down and apply the animation to the user's avatar . The pre-set animations can be defined for an application or for a system. For example, the jump up and down animation may be applicable to a game application, but an open / close file animation applied to an avatar can be the same system-wide.
[00056] The animations in the avatar library can be animations inserted and registered by the system or by the user. The system allows users to replace or add to the main animation library. For example, the system or the user can replace a main animation to reflect the user's actual movements or behaviors, captured by a capture device, for example. In this way, animations can be added or replaced in the avatar animation library so that applied animations are customized to the data captured in relation to a particular user. In the example of jump-up and jump-down animation, the system can re-record a standardized or pre-defined animation to jump up and down by recording the user's actual movement. In this way, the up-and-down animation applied to the user's avatar is customized to the user's actual movements.
[00057] The system can also store data related to user inputs in an avatar library. The avatar library can comprise indications of user behaviors and / or circumstances that correspond to the behaviors. For example, circumstances can be contextual circumstances that indicate a context that correlates with user behaviors. Contextual circumstances can include any identifiable features of the scenario that may or may not correlate with user behavior. The system can track contextual circumstances in relation to user behaviors and identify correlations between contextual circumstances and trends in user behaviors.
[00058] Contextual circumstances, for example, may include conditions of the user environment, including the physical or virtual environment of the user, other users present in the physical space, the state of the game, the results in the application, the active or inactive status or similar. The conditions of the user environment can comprise the physical features of the scene as captured by the capture device, such as the colors of the walls, the furniture in the room, lighting, etc. User environment conditions may include virtual environment conditions, such as on-screen animations (for example, virtual mountains displayed in a ski game application). The application state can include any application status, such as whether the application is paused, the amount of time an application is running, the required level of dexterity (such as in a game application) or the like. The results in the application can be completed, for example, if the code operates through a debugger successfully, or a player in a game application achieves success or failure in the game.
[00059] The gesture library and filter parameters can be tuned to an application or context of an application by a gesture tool. The system can identify and store the contexts of the application and correlate these with user input. Using contextual information, the system can correlate certain user behaviors to a context. In this way, the system can intelligently apply animations to an avatar in such a way that the avatar responds to contextual circumstances with similar behavior.
[00060] A context can have identifiable circumstances of the context (ie contextual circumstances) and can be a cultural context, and can be an environmental context. A cultural context refers to the culture of a user using a system. Different cultures can use similar gestures to convey strikingly different meanings. For example, an American user who wants to tell another user to "look" or "use their eyes" can place their index finger on their head near the distal side of their eye. However, for an Italian user, the gesture can be interpreted as a reference to the mafia.
[00061] Similarly, there may be different contexts, or contextual circumstances, among different environments within a single application. Adopt a first person shooter game that involves operating a motor vehicle. While the user is on foot, punching with the fingers towards the ground and extending the punch in front and in the opposite direction to the body can represent a punch gesture. Although the user is in the driving context, that same movement can represent a "gear change" gesture. Regarding the modifications to the visual representation, different gestures can trigger different modifications depending on the environment. A different modification trigger gesture could be used to enter an application-specific modification mode versus a system-wide modification mode. Each modification mode can be packaged with an independent set of gestures corresponding to the modification mode, inserted as a result of the modification triggering gesture. For example, in a bowling game, a swinging arm movement can be a gesture identified as swinging a bowling ball to release on a virtual bowling alley. However, in another application, the swinging arm movement can be a gesture identified as a request to stretch the arm of the user's avatar displayed on the screen. There may also be one or more menu environments, where the user can save his game, select from his character equipment or perform similar actions that do not include direct play. In that environment, that same gesture can have a third meaning, such as selecting something or moving to another screen.
[00062] Avatar libraries, including an avatar library that corresponds to a particular user or an avatar library that is prepackaged with an application, can be accessible for an application, across applications or across the system. For example, the system can identify user behaviors across multiple applications. The system can collect all data related to user behavior in applications and store it in a universally acceptable avatar library. The system can then access the avatar library and apply avatar library animations to the avatar under any circumstances.
[00063] A gesture can be recognized as a request to modify animations in an avatar library. A plurality of gestures can represent a request to modify a particular animation. The system can ask the user to perform the desired movement for the particular animation. In this way, a user can actively modify an avatar library that can be associated with the user by making a gesture in the physical space that is recognized as a modification gesture. For example, as described above, the user movement can be compared to a gesture filter, such as the gesture filter 191 in Figure 2. The gesture filter 191 can comprise information for a gesture of modifying the gestures of modifications 196 in the 192 gesture library.
[00064] Gestures can be grouped into gender packages of complementary gestures that are likely to be used by an application in that genre. Complementary gestures, complementary as those that are commonly used together, or complementary as in a change in a parameter of one that will change a parameter of the other, can be grouped together in gender packages. These packages can be provided for an application, which can select at least one. The application can tune, or modify, a gesture parameter or gesture filter 191 to better suit the unique aspects of the application. When the parameter is tuned, a second complementary parameter (in the interdependent sense) of the gesture or a second gesture is also tuned in such a way that the parameters remain complementary. Genre packages for video games can include genres such as first-person shooter, action, driving and sports.
[00065] The gesture library 192, the gesture recognition mechanism 190, avatar library 196 and profile 198 can be deployed in hardware, software or a combination of both. For example, gesture library 192 and gesture recognition mechanism 190 can be deployed as software that runs on a processor, such as processor 195, in computing environment 12 (or in processing unit 101 in Figure 3 or unit number 259 of Figure 4).
[00066] It is emphasized that the block diagram shown in Figure 2 and Figures 3 and 4 described below is exemplary and is not intended to imply a specific implantation. Thus, processor 195 or 32 in Figure 1, processing unit 101 in Figure 3 and processing unit 259 in Figure 4 can be deployed as a single processor or multiple processors. Multiple processors can be distributed or centrally located. For example, gesture library 190 can be deployed as software that runs on processor 32 of the capture device or it can be deployed as software that runs on processor 195 in computational environment 12. Any combination of processors that are suitable for executing techniques revealed in this document is contemplated. Multiple processors can communicate wirelessly, over hard wire or a combination of them.
[00067] Additionally, as used in this document, a computational environment 12 can refer to a single computing device or a computing system. The computing environment can include non-computational components. The computing environment can include a display device, such as a display device 193 shown in Figure 2. A display device can be a separate entity, but coupled to the computing environment, or the display device can be the computing device that processes and displays, for example. In this way, a computing system, computing device, computing environment, computer, processor or other computing component can be used interchangeably.
[00068] Figure 3 illustrates an exemplary modality of a computational environment that can be used to interpret one or more gestures in a target tracking, analysis and recognition system. The computing environment such as the computing environment 12 described above in relation to Figures 1A to 2 can be a multimedia console 100, such as a game console. As shown in Figure 3, the multimedia console 100 has a central processing unit (CPU) 101 that has, a level 1 cache 102, a level 2 cache 104 and a flash ROM (Read Only Memory) 106. The level 1 cache 102 and a level 2 cache 104 store data temporarily and therefore reduce the number of memory access cycles, thereby improving processing speed and throughput. CPU 101 can be supplied with one more core and thus additional level 1 and level 2 caches 102 and 104. Flash ROM 106 can store executable code that is loaded during an initial phase of a restart process when the multimedia console 100 is turned on.
[00069] A graphics processing unit (GPU) 108 and a video codec (encoder / decoder) / video encoder 114 forms a video processing stream for high-speed, high-resolution graphics processing. The data is transported from the graphics processing unit 108 to the video codec / video encoder 114 via a bus. The video processing stream sends data to an A / V (audio / video) port 140 for transmission to a television or other display. A memory controller 110 is connected to GPU 108 to facilitate access by the processor to various types of memory 112, such as, but not limited to, RAM (Random Access Memory).
[00070] Multimedia console 100 includes an I / O controller 120, a system management controller 122, an audio processing unit 123, a network interface controller 124, a first USB host controller 126, a second controller USB 128 and a front panel I / O subassembly 130 that are preferably deployed in a module 118. USB controllers 126 and 128 serve as hosts for peripheral controllers 142 (1) -142 (2), a wireless adapter 148 and an external memory device 146 (for example, flash memory, external CD / DVD ROM drive, removable media, etc.). Network interface 124 and / or wireless adapter 148 provides access to a network (for example, the Internet, home network, etc.) and can be any of a wide variety of various wireless or wired adapter components including an Ethernet card, a modem, a Bluetooth module, a cable modem and the like.
[00071] System memory 143 is provided to store application data that is loaded during the restart process. A 144 media drive is provided and may comprise a DVD / CD drive, hard drive or other removable media drive, etc. Media unit 144 can be internal or external to multimedia console 100. Application data can be accessed via media unit 144 for execution, playback, etc. via multimedia console 100. Media unit 144 is connected to I / O controller 120 via a bus, such as a Serial ATA bus or other high-speed connection (for example, IEEE 1394).
[00072] System management controller 122 provides a variety of service functions related to ensuring the availability of multimedia console 100. The audio processing unit 123 and an audio codec 132 form a corresponding audio processing stream with high fidelity and stereo processing. The audio data is transported between the audio processing unit 123 and the audio codec 132 via a communication link. The audio processing stream outputs data to A / V port 140 for playback by an external audio device or player with audio capabilities.
[00073] The front panel I / O subassembly 130 supports the functionality of the power button 150 and the eject button 152, as well as any LEDs (light-emitting diodes) or other indicators exposed on the external surface of the multimedia console 100. A system power supply module 136 provides power to the components of the multimedia console 100. A fan 138 cools the circuitry inside the multimedia console 100.
[00074] CPU 101, GPU 108, memory controller 110 and various other components within multimedia console 100 are interconnected via one or more buses, including serial and parallel buses, a memory bus, a peripheral bus , and a processor bus or location that uses any of a variety of bus architectures. For example, such architectures can include a Peripheral Component Interconnects (PCI) bus, PCI-Express bus, etc.
[00075] When multimedia console 100 is turned on, application data can be loaded from system memory 143 into memory 112 and / or caches 102, 104 and executed on CPU 101. The application can have a graphical user interface which provides a consistent user experience when browsing different types of media available on multimedia console 100. In operation, applications and / or other media contained in media unit 144 can be played or played from media unit 144 to provide additional functionality for the multimedia console 100.
[00076] The multimedia console 100 can be operated as a standalone system by simply connecting the system to a television or other display. In this standalone mode, multimedia console 100 allows one or more users to interact with the system, watch movies or listen to music. However, with the integration of broadband connectivity available through network interface 124 or wireless adapter 148, multimedia console 100 can be operated additionally as a participant in a larger network community.
[00077] When multimedia console 100 is turned on, a defined amount of hardware resources are reserved for use by the system by the multimedia console operating system. These resources can include a memory reserve (for example, 16MB), CPU and GPU cycles (for example, 5%), network bandwidth (for example, 8 kbs.), Etc. Due to the fact that these resources are reserved at the instant of system restart, the reserved resources do not exist in the application view.
[00078] In particular, the memory reserve is preferably large enough to contain the concurrent boot core, applications and system drivers. The CPU reserve is preferably constant such that if the reserved CPU usage is not used by the system's applications, an idle thread will consume any unused cycles.
[00079] Regarding the GPU reservation, the light messages generated by the system applications (for example, pop-ups) are displayed through the use of a GPU interrupt to program code to render the pop-up in a top layer. The amount of memory required for an upper layer depends on the size of the upper layer area and the preferred scales of the upper layer with screen resolution. Where a complete user interface has been used by the concurrent system application, it is preferable to use a resolution independent of application resolution. A seal can be used to set this resolution in such a way that the need to change the frequency and cause TV resynchronization is eliminated.
[00080] After multimedia console 100 is rebooted and system resources are reserved, concurrent system applications are run to provide system functionality. The system's functionality is encapsulated in a set of system applications that runs on the reserved system resources described above. The operating system kernel identifies threads that are system application threads versus game application threads. System applications are preferably programmed to operate on CPU 101 at predetermined times and intervals to provide a consistent system resource view for the application. The schedule consists of minimizing the cache break for the game application that is operating on the console.
[00081] When a concomitant system application requires audio, audio processing is programmed asynchronously to the game application due to time sensitivity. A multimedia console application manager (described below) controls the audio level of the game application (for example, mute, attenuation) when system applications are active.
[00082] Input devices (for example, 142 (1) and 142 (2) controllers) are shared by game applications and system applications. Input devices are not reserved resources, but must be switched between the system applications and the game application in such a way that each will have a device focus. The application manager preferably controls the input flow switching, without knowledge about the knowledge of the game application and a driver maintains state information related to the focus switching. Cameras 26, 28 and capture device 20 can define additional input devices for console 100.
[00083] Figure 4 illustrates another exemplary modality of a computational environment 220 which can be the computational environment 12 shown in Figures 1A to 2 used to interpret one or more gestures in a target tracking, analysis and recognition system. The ambient computing system 220 is only an example of a suitable computing environment and is not intended to suggest any limitations as to the scope of use or functionality of the subject currently disclosed. Nor should the computing environment 220 be construed as having any dependencies or requirements related to any one or a combination of components illustrated in the exemplary operating environment 220. In some embodiments, the various computational elements revealed may include sets of circuits configured to illustrate specific aspects of the present disclosure. For example, the term circuitry used in the disclosure may include specialized hardware components configured to perform function (s) by firmware or switches. In other exemplary embodiments, the term circuitry may include a general purpose processing unit, memory, etc., configured by software instructions that incorporate operable logic to perform a function (s). In exemplary modalities where the circuitry includes a combination of hardware and software, an implanter can write source code that incorporates logic and the source code can be compiled into machine-readable code that can be processed by the general purpose processing unit. Since a person skilled in the art can observe that the state of the art involved a point where there is little difference between hardware, software or a hardware / software combination, the selection of hardware versus software to perform specific functions is a design choice left to an implanter. More specifically, a person skilled in the art can observe that a software process can be transformed into an equivalent hardware structure, and a hardware structure itself can be transformed into an equivalent software process. Thus, the selection of a hardware deployment versus a software deployment is a design choice left to the implanter.
[00084] In Figure 4, the computing environment 220 comprises a computer 241, which typically includes a variety of computer-readable media. Computer-readable media can be any available computer-accessible media 241 and includes both volatile and non-volatile media, both removable and non-removable media. System memory 222 includes computer storage media in the form of volatile and / or non-volatile memory such as read-only memory (ROM) 223 and random access memory (RAM) 260. A basic input / output system 224 ( BIOS), which contains the basic routines that help transfer information between elements on computer 241, such as during startup, is typically stored in ROM 223. RAM 260 typically contains data and / or program modules that are immediately accessible and / or are currently operated by processing unit 259. By way of example, and without limitation, Figure 4 illustrates operating system 225, application programs 226, other program modules 227 and program data 228.
[00085] Computer 241 may also include other volatile / non-volatile and removable and non-removable computer storage media. By way of example only, Figure 4 illustrates a 238 hard disk drive that reads or writes to non-volatile and non-removable magnetic media, a 239 magnetic disk drive that reads or writes to a non-volatile and removable magnetic disk 254, and an optical disc drive 240 that reads or writes to a non-volatile and removable optical disc 253 such as a CD ROM or other optical media. Other volatile / non-volatile and removable and non-removable computer storage media that can be used in the exemplary operating environment include, but are not limited to, magnetic tape cassettes, flash memory cards, digital versatile discs, digital video tape, Solid state RAM, solid state ROM and the like. Hard disk 238 is typically connected to system bus 221 via a non-removable memory interface such as interface 234, and magnetic disk drive 239 and optical disk drive 240 are typically connected to system bus 221 by a removable memory interface, such as the 235 interface.
[00086] The drives and their associated computer storage media discussed above and illustrated in Figure 4 provide storage of computer-readable instructions, data structures, program modules and other data for computer 241. In Figure 4, for example, hard drive 238 is illustrated as storage operating system 258, application programs 257, other program modules 256, and program data 255. Note that these components may be the same or different from operating system 225, application programs 226 , other program modules 227 and program data 228. The operating system 258, application programs 257, other program modules 256 and program data 255 are given different numbers in this document for illustration, at the very least, are different copies . A user can enter commands and information on computer 241 through input devices such as a keyboard 251 and pointing device 252, commonly called a mouse, rolling-ball device or touch pad. Other input devices (not shown) may include a microphone, game controller, console, satellite dish, scanner or the like. These and other input devices are often connected to the processing unit 259 via a user input interface 236 that is coupled to the system bus, but can be connected by other interface and bus structures, such as a parallel port, port game card or a universal serial bus (USB). Cameras 26, 28 and capture device 20 can define additional input devices for console 100. A monitor 242 or other type of display device is also connected to the system bus 221 via an interface, such as an interface video 232. In addition to the monitor, computers can also include other peripheral output devices such as speakers 244 and printer 243, which can be connected via a peripheral 233 output interface.
[00087] Computer 241 can be operated in a networked environment that uses logical connections to one or more remote computers, such as a remote computer 246. Remote computer 246 can be a personal computer, a server, a router, a PC networked, a peer device or other common network node, and typically includes many or all of the elements described above in relation to computer 241, although only one memory storage device 247 has been illustrated in Figure 4. The logical connections revealed Figure 2 includes a local area network (LAN) 245 and a wide area network (WAN) 249, but can also include other networks. Such network environments are common in offices, corporate computer networks, intranets and the Internet.
[00088] When used in a LAN network environment, computer 241 is connected to LAN 245 via a 237 network adapter or interface. When used in a WAN network environment, computer 241 typically includes a 250 modem or other means to establish communications over WAN 249, such as the Internet. Modem 250, which can be internal or external, can be connected to system bus 221 through user input interface 236, or another appropriate mechanism. In a networked environment, the program modules revealed in relation to computer 241, or parts thereof, may be stored on the remote memory storage device. By way of example, and without limitation, Figure 4 illustrates remote application programs 248 that reside on a memory device 247. It will be noted that the network connections shown are exemplary and other means of establishing a communications link between computers can be used.
[00089] The computer-readable storage medium may comprise computer-readable instructions for modifying a visual representation. Instructions can comprise instructions for rendering the visual representation, receiving data from a scene, where the data includes data representative of a user's modification gesture in a physical space, and modifying the visual representation based on the user's modification gesture, where the modification gesture is a gesture that maps a control to modify a characteristic of the visual representation.
[00090] Figure 5 A reveals an exemplary skeletal mapping of a user that can be generated from image data captured by the capture device 20. In this modality, a variety of joints and bones are identified: each hand 502, each forearm 504, each elbow 506, each bicep 508, each shoulder 510, each hip 512, each thigh 514, each knee 516, each leg 518, each foot 520, head 522, torso 524, top 526 and bottom 528 of spine and waist 530. Where more points are tracked, additional features can be identified, such as the bones and joints of the fingers or toes, or individual features of the face, such as the nose and eyes.
[00091] Through the movement of the body, a user can create gestures. A gesture comprises a movement or pose by a user that can be captured as image data and analyzed for meaning. A gesture can be dynamic, which comprises a movement, such as imitating the throwing of a ball. A gesture can be a static pose, such as holding one of your crossed forearms 504 in front of your torso 524. A gesture can also incorporate supports, such as by swinging a simulated sword. A gesture can comprise more than one part of the body, such as clapping 502 or a subtle movement, such as pursing one of the lips.
[00092] A user gesture can be used to enter a general computing context. For example, various movements of 502 hands or other parts of the body can correspond to broad common system tasks such as navigating up or down a hierarchical list, opening a file, closing a file and saving a file. For example, a user can hold his hand with the fingers pointing upwards and the palm facing the capture device 20. The user can then close the fingers towards the palm to make a punch, and this could be a gesture which indicates that the window focused on a window-based user interface computing environment should be closed. Gestures can also be used in a specific video game context, depending on the game. For example, with a steering game, several hand movements 502 and feet 520 can correspond to driving a vehicle in one direction, changing gears, accelerating and braking. In this way, a gesture can indicate a wide variety of movements that map a displayed user representation, and in a wide variety of applications, such as video games, text editors, word processing, data management, etc.
[00093] A user can generate a gesture that corresponds to walking or running, walking or running on the spot. For example, the user can alternatively raise and lower each 512-520 leg to mimic walking without movement. The system can analyze this gesture by analyzing each hip 512 and each thigh 514. A step can be recognized when a thigh / hip angle (as measured against a vertical line, where a standing leg has a thigh angle / hip 0 °, and one leg extended horizontally forward has a thigh / hip angle of 90 °) exceeds a certain limit in relation to the other thigh. A walk or run can be recognized after a few consecutive steps by alternating legs. The time between the two most recent steps can be taken into account as a period. After some periods when the borderline angle is not satisfied, the system can determine that the walking or running gesture has ceased.
[00094] In view of a "walk or run" gesture, an application can define values for parameters associated with that gesture. These parameters can include the borderline angle above, the number of steps required to initiate a walking or running gesture, a number of periods when no steps have taken to end the gesture, and a borderline period that determines whether the gesture is a walk or a race. A quick period can correspond to a run, as the user will be moving his legs quickly, and a slower period can correspond to a walk.
[00095] A gesture can be associated with a set of predefined parameters, which the application can replace with its own parameters. In this scenario, an application is not forced to provide parameters, but can instead use a set of predefined parameters that allows the gesture to be recognized in the absence of parameters defined by the application. Gesture-related information can be stored for pre-stipulated animation purposes.
[00096] There is a variety of exits that can be associated with the gesture. There may be a "yes or no" baseline to determine if a gesture is taking place. There may also be a level of confidence, which corresponds to the similarity in which the user's tracked movement corresponds to the gesture. This could be a linear scale that lies in the range on the point numbers oscillating between 0 and 1, inclusive. Where an application that receives this gesture information cannot accept false positives as input, it can use only those recognized gestures that have a high level of confidence, such as at least 0.95. Where an application needs to recognize each case of the gesture, even with false positives, it can use gestures that have at least a much lower level of confidence, such as those simply greater than 0.2. The gesture can have an exit for the time between the two most recent steps, and where only a first step has been recorded, this can be set to a reserved value, such as -1 (since the time between any two steps needs be positive). The gesture may also have an outlet for the highest thigh angle achieved during the most recent step.
[00097] Another exemplary gesture is a "heel lift". In this, a user can create the gesture by raising their heels off the floor, but keeping their toes on the floor. Alternatively, the user can jump in the air where their 520 feet leave the ground completely. The system can analyze the skeleton for this gesture by analyzing the angular relationship of shoulders 510, hips 512 and knees 516 to verify that they are in an alignment position equal to the standing position. Then, these points and the points of the upper spine 526 and lower 528 can be monitored for any vertical acceleration. A sufficient combination of acceleration can trigger a jump gesture. A sufficient combination of acceleration with a particular gesture can satisfy the parameters of a transition point.
[00098] In view of this "heel lift" gesture, an application can define values for parameters associated with this gesture. Parameters can include the acceleration limit above, which determines how fast any combination of the user's shoulders 510, hips 512 and knees 516 need to move upwards to trigger the gesture, as well as a maximum alignment angle0 between shoulders 510, the hips 512 and knees 516 in which a jump can still be triggered. The exits can comprise a level of confidence, as well as the angle of the user's body at the moment of the jump.
[00099] The definition of the parameters for a gesture based on the particularities of the application that will receive the gesture is important in the precise identification of the gestures. Proper identification of gestures and a user's intent helps considerably in creating a positive user experience.
[000100] An application can define values for parameters associated with several transition points to identify the points at which to use pre-stipulated animations. The transition points can be defined by several parameters, such as the identification of a particular gesture, a speed, an angle of a target or object, or any combination of them. If a transition point is defined at least in part by identifying a particular gesture, then proper gesture identification helps to increase the level of confidence that the parameters of a transition point need to satisfy.
[000101] Another parameter for a gesture can be a distance moved. Where the user's gestures control the actions of an avatar in a virtual environment, where the avatar can be the length of the arm of a ball. If the user wants to interact with the ball and catch it, this may require the user to extend their 502-510 arm across the entire length while performing the catch gesture. In this situation, a similar catch gesture in which the user only partially extends his arm 502-510 cannot fail to achieve the result of interaction with the ball. Likewise, a parameter of a transition point could be the identification of the catch gesture, in which if the user only partially extends his arm 502-510, thereby not achieving the result of interaction with the ball, the gesture of the user will also not satisfy the transition point parameters.
[000102] A gesture or a portion of it can take as a parameter a volume of space in which it needs to occur. This volume of space can typically be expressed in relation to the body in which a gesture comprises body movement. For example, a football-throwing gesture to a right-handed user can be recognized only in the volume of space not less than the right shoulder 510a, and on the same side of the head 522 as the throwing arm 502a-310a. It may not be necessary to define all the limits of a volume, as with this throwing gesture, in which an external limit in the opposite direction to the body is left undefined, and the volume extends outward indefinitely, or to the edge of the scene that is being monitored.
[000103] Figure 5B further provides details of an exemplary embodiment of the gesture recognizer mechanism 192 of Figure 2. As shown, the gesture recognition mechanism 190 may comprise at least one filter 519 for determining a gesture or gestures. A filter 519 comprises information that defines a gesture 526 (hereinafter referred to as "gesture"), and can comprise at least one parameter 528, or metadata, for that gesture 526. For example, a pitch, which comprises movement of a of the hands behind the back of the body to the front of the body, it can be implanted as a 526 gesture that comprises information that represents the movement of one of the user's hands behind the back of the body towards the front of the body, as the movement would be captured by the depth camera. Parameters 528 can then be defined for that gesture 526. Where gesture 526 is a pitch, parameter 528 can be a boundary speed at which the hand must reach, a distance at which the hand must travel (absolute, or relative to the size of the user as a whole), and a confidence classification by the recognizing mechanism 192 that the 526 gesture occurred. These 528 parameters for the 526 gesture can vary between applications, between contexts of a single application, or within the context of an application over time.
[000104] Filters can be modular or interchangeable. In one embodiment, a filter has a number of inputs, each of these inputs has a type, and a number of outputs, each of these outputs has a type. In this situation, a first filter can be replaced by a second filter that has the same number and types of inputs and outputs as the first filter without changing any other aspect of the architecture of the recognizer mechanism 190. For example, there may be a first filter for direction which adopts skeletal data as input and issues a confidence that the 526 gesture associated with the filter is occurring and a driving angle. Where a user wants to replace that first direction filter with a second direction filter (perhaps due to the fact that the second direction filter is more efficient and requires less processing resources), this can be accomplished simply by replacing the first filter with the second filter provided that the second filter has the same inputs and outputs (one type of skeletal data input, and two type confidentiality and angle type outputs).
[000105] A filter does not need to have a parameter 528. For example, a "user height" filter that returns the user height may not allow any parameters to be tuned. An alternative "user height" filter can have tunable parameters (such as considering the user's footwear, haircut, headdress and posture in determining the user's height.
[000106] The entries for a filter can comprise something such as joint data about a user joint position, such as angles formed by the bones in the joint, RGB color data of the scene and rate of change of a user aspect . The outputs of a filter can comprise something such as the confidence in which a certain gesture is being made, the speed at which a gesture movement is made and an instant in which a gesture movement is made.
[000107] A context can be a cultural context, and it can be an environmental context. A cultural context refers to the culture of a user using a system. Different cultures can use similar gestures to convey strikingly different meanings. For example, an American user who wants to tell another user to "watch" or "use his eyes" can place his index finger on his head near the distal side of his eye. However, for an Italian user, this gesture can be interpreted as a reference to the mafia.
[000108] Similarly, there may be different contexts between different environments of a single application. Adopting a first person sniper game that involves operating a motor vehicle. While the user is standing, making a punch with the fingers towards the ground and extending the punch forward and in the opposite direction to the body can represent a punch gesture. While the user is in the driving context, the same movement can represent a "gear change" gesture. There may also be one or more menu environments, in which the user can save his game, select from his character's equipment or perform similar actions that do not include direct play. In that environment, that same gesture can have a third meaning, such as selecting something or moving to another screen.
[000109] The gesture recognition mechanism 190 may have a base recognition mechanism 517 that provides functionality for a gesture filter 519. In one embodiment, the functionality that the recognition mechanism 517 implements includes a time over entry file that tracks recognized gestures and other inputs, an implementation of the Hidden Markov model (where the modeled system is considered to be a Markov process (where a present state encapsulates any past state information needed to determine a future state, so no past state information needs to be kept for this purpose) with unknown parameters, and hidden parameters are determined from observable data), as well as other functionality necessary to solve particular cases of gesture recognition.
[000110] Filters 519 are loaded and implanted on top of the base recognizer mechanism 517 and can use services provided by the mechanism 517 for all filters 519. In one embodiment, the base recognition mechanism 517 processes the data received to determine whether they meet the requirements of any 519 filter. Since these services provided, such as input analysis, are provided once by the base recognizer mechanism 517 instead of by each filter 519, such service only needs to be processed once in a period of time in reverse once per 519 filter for that period, then the processing required to determine the gestures is reduced.
[000111] An application can use the 519 filters provided by the recognizer mechanism 190, or it can supply its own filter 519, which plugs into the base recognizer mechanism 517. In one embodiment, all 519 filters have a common interface to allow this feature of plug in. In addition, all 519 filters can use parameters 528, so a single management tool as described below can be used to debug and tune the entire 519 filter system.
[000112] These parameters 528 can be tuned to an application or context of an application by a gesture tool 521. In one embodiment, the gesture tool 521 comprises a plurality of slides 523, each slide 523 corresponding to a parameter 528, as well as a graphical representation of a body 524. As a parameter 528 is adjusted with a corresponding slide 523, body 524 can demonstrate both actions that would be recognized as the gesture with those parameters 528 and actions that would not be recognized as the gesture with those 528 parameters, identified as such. This visualization of gesture parameters 528 provides an effective means for both debugging and tuning a gesture.
[000113] Figures 6A and 6B reveal a system 600 that can comprise a capture device 608, a computing device 610 and a display device 612. In this example, a depth camera 608 captures a scene in physical space 601 in the which a 602 user is present. For purposes of this description, display device 612 is shown as display device 612a in Figure 6A and as display device 612b in Figure 6B, and user 602 is shown as user 602a in Figure 6A and as user 602b in Figure 6B . The depth camera 608 processes depth information and / or provides depth information to a computer, such as computer 610. Depth information can be interpreted to display a visual representation of the 602 user. For example, the camera depth 608 or, as shown, a computing device 610 to which this is coupled, can output to a display 612a, 612b. In this example, user 602 is playing a football game application.
[000114] Capture device 608, computing device 610 and display device 612a, 612b can comprise any suitable device that performs the desired functionality, such as the devices described in relation to Figures 1 to 5B. It is envisaged that a single device can perform all functions in the 600 system, or any combination of suitable devices can perform the desired functions. For example, computing device 610 can provide the functionality described in relation to computing environment 12 shown in Figure 2 or the computer in Figure 3. As shown in Figure 2, computing environment 12 can include the display device and a processor. The computing device 610 can also comprise its own camera component or can be coupled to a device that has a camera component, such as the capture device 608.
[000115] The visual representation of a 602 user can take any form, such as an animation, a character, an avatar or the like. For example, the visual representation of the target, such as a 602 user, can initially be a piece of digital clay that the 602 user can sculpt in desired shapes and sizes, or a character representation selected from a main avatars library. In a baseball game app, for example, the options for visually representing the 602 user can take any form, from a representation of a famous baseball player to a piece of caramel or an elephant to an imaginary character or symbol, such as a cursor or hand symbol. The visual representation can represent a combination of the user's 602 features and strokes of an animation or main model. For example, user 602 can select from a variety of main models that is provided by a game application. The system can apply user features to the selected main model. The visual representation can be application specific, as packaged with a program, or the visual representation can be available in all applications or available throughout the system.
[000116] The exemplary visual representation shown in Figures 6A and 6B, as shown on display device 612a, is that of an avatar 606 with features that resemble those of user 602. Figures 6A and 6B show avatar 606 in two different frames or points in time, represented by avatar 606a in Figure 6A and by avatar 606b in Figure 6B. Although additional frames of image data can be captured and displayed, the frames revealed in Figures 6A and 6B are selected for exemplary purposes. The rate at which image data frames are captured and displayed can determine the level of continuity of the displayed motion of the visual representation.
[000117] System 600 can capture information about physical space 601, such as depth information, image information, RGB data, etc. According to one embodiment, the image data may include a depth image or an image from a 608 depth camera and / or RGB camera, or an image from any other detector. For example, camera 608 can process image data and use this to determine the shape, colors and size of a target. Each target or object that matches the human pattern can be scanned to generate a model such as a skeletal model, a model filled with a single color, a human network model or the like associated with it. For example, as described above, depth information can be used to generate a skeletal model of the user, such as that shown in Figure 5 A, where the system identifies parts of the user's body such as the head and limbs. Using, for example, depth values in a plurality of observed pixels that are associated with a human target and the extent of one or more aspects of the human target such as height, head width or shoulder width, or similar, the size of the human target can be determined.
[000118] System 600 can track the movements of the user's limbs by analyzing the captured data and transforming it into the skeletal model. The 600 system can then track the skeletal model and map the movement of each part of the body to a respective portion of the visual representation. For example, if user 602 shakes his arm, the system can capture that movement and apply this to the arm of avatar 606 in such a way that the virtual avatar shakes his arm as well. Additionally, the system 600 can identify a gesture from the user's movement, through the evaluation of the user's position in a single frame of capture data or through a series of frames, and apply the gesture to the visual representation.
[000119] The system can use captured data, such as scanned data, image data or depth information to identify characteristics indicative of user behaviors to acquire user behaviors. For example, a system may have a capture device that captures data about the user in the physical space. The system can identify user behavior by collecting and storing a history of data related to the characteristics indicative of user behavior, such as the user's physical traits, trends, voice patterns, habits, vocabulary, voice commands, oscillations voice, responses, behaviors, gestures, etc., and identify circumstances that can elicit certain user behaviors, such as contextual circumstances. The system can record or store historical data about the contextual circumstances associated with user behaviors, such as system status, game or application status, or any other features of the scenario. In addition, the system can evaluate the scenario and remove correlations between contextual circumstances and user behavior to determine the user trend in different scenarios. For example, the system can acquire how the user's voice swings under certain circumstances, or how the user looks when the user is not an active participant in the running application.
[000120] It may be desirable to animate the user's avatar even if the real user is not present. For example, when the user is not in the physical space, it may be desirable to provide an avatar that represents the user and is able to behave according to the user's behaviors (as acquired by the system). In this way, the system can access historical data and apply animations to the avatar that are indicative of absent user behaviors and trends, even if the user is not present in the physical space. For example, the system can apply animations to the absent user's avatar in such a way that the absent user's avatar moves, speaks, uses language, etc., which correspond to the absent user. This allows a second user to have a virtual experience with the absent user's avatar that would be similar to the case where the absent user is present and interacting with the system.
[000121] Over time, the system 600 can continue to acquire a user trend and continuously update the user avatar library with characteristics indicative of user behavior and trend and with contextual circumstances. Contextual circumstances can be correlated to certain user behaviors, where the user can respond to certain contextual circumstances in identifiable ways. The system can intelligently apply animations to user 606's avatar in such a way that avatar 606 behaves or responds according to the user's behavior. As the system collects more data from user input, the avatar can become closer and a reflection closer to the user, with aspects of the user’s physical traits, behaviors, emotions, speech patterns, trends, voice patterns, etc. In this way, training an avatar of the animations for execution can comprise acquiring the inputs from a user and shaping the avatar to look like the user. The user may not be present in the physical space, but the user's avatar may become a close resemblance to the user who looks like the user who is present and / or controls the avatar.
[000122] The identity of indicative characteristics of user behaviors may include information that may be associated with the particular user 602 such as behavioral trends, speech patterns, facial expressions, skeletal movements, spoken words, historical data, voice recognition information or similar. The characteristics of the user may comprise the user's physical traits, such as: eye size, type, and color; hair length, type and color; skin color; clothing and clothing colors. For example, colors can be identified based on a corresponding RGB image. Other target characteristics for a human target can include, for example, height and / or length of the arm and can be obtained based, for example, on a body scan, a skeletal model, the extension of a 602 user in an area of pixel or any suitable process or data. The computing system 610 can use body recognition techniques to interpret image data and can scale and shape the visual representation of user 602 according to the size, shape and depth of user attachments 602.
[000123] The system can actively or passively acquire user behaviors. In Figure 6, avatar 606 is a physical representation close to user 602, with added features and animations that are applicable to the football game application (for example, goal net and goal 609, ball 607, etc.) . User 602 is the active player in the football game application and a second user 603 is the non-active player, although both are in the physical space. As used in this document, non-active refers merely to the 603 user who, in this example, is not currently performing gestures to control aspects of the application. More than one user can be active at a time. Alternatively, the system can allow one active user at a time. In this example, non-active player 603 is waiting for his turn, while current player 602a is making gestures to control avatar 606a on display 612a.
[000124] Active user acquisition is the acquisition associated with application gestures or controls, and can understand acquisition behaviors of one or both users 602a, 603. Active user acquisition describes when a user, such as user 602 or user 603, performs specific movements or gestures, and the system identifies characteristics indicative of user behaviors associated with the user's gesture. Gestures can include dynamic or static movement as well as voice commands, and can be performed to control aspects of the system or a running application. For example, in Figure 6A, the user's movement 602a in physical space 601 comprises a directional movement to the left with the arms stretched to the left. The gesture can be recognized as a goalkeeper move and can result in controlling the animation of the avatar 606a. The result of the gesture can be recognized as a failure or success in the game (for example, the gesture can result in a failure / success in the football game application). System 600 can identify aspects of the gesture itself or behaviors that correspond to the gesture and associate those aspects or behaviors with the user.
[000125] Figure 6 reveals an example scenario in which the system can actively acquire user behavior associated with a gesture, in which the user is performing gestures in a football game application. System 600 can identify aspects of the gesture itself or behaviors that correspond to the gesture and associate those aspects or behaviors with the user. In this way, the gesture data and user behaviors that correspond to the gesture can be applied to an avatar in such a way that the animations are customized for the specific user. In this example, user 602 is playing a goalkeeper role. If most of the time when user 602 performs a goalkeeper gesture that results in preventing a ball 607 from going to network 609 the user also does a dance, the system can identify and correlate user behaviors (for example, the dance) with the contextual circumstances (for example, gesture of the soccer goalkeeper and the successful result of the gesture). In this way, the system can correlate user behavior with the state of the game. In another example, if the user tends to open his mouth when he makes the gesture of hitting a tennis ball in a tennis game application, or the user groans during a service gesture in the tennis game application, the system can include information in the gesture data that indicates that other user behavior occurs when performing the gesture.
[000126] The system can store animation that corresponds to the user's behavior, such as an animation of the user's dance. The system can store an indication in the user's profile that the animation correlates with certain contextual circumstances, such as the performance of the gesture and / or the state of the game. Similarly, the system can identify trends in facial expressions, body positions, language, etc. of the user, which correlate to the user's gesture, an application state, or any other identifiable contextual circumstance (including an idle state), and indicate the correlation in the user's profile or in the avatar library, for example. In the future, when the user performs the gesture and this results in a similar state of the game (for example, the success of saving the ball to prevent it from entering the net), the system can apply the dance animation to the avatar of the user. Similarly, if the user is not present, the system can render the user's avatar and simulate the user's participation through the avatar, such as applying gestures and animations associated with these gestures to the avatar. In this example, the system can identify historical data and also apply the dance animation to the user's avatar under the appropriate contextual circumstances. In this way, the user's avatar can represent a similarity to the user based on historical data, even if the system is not using data captured in relation to the user in real time.
[000127] The system can passively acquire user behaviors when the user is not active, such as when the user is acting naturally in the physical space where the user behavior may not correspond to a gesture. The system can passively detect user behaviors under such circumstances as user tendency, responses, idle activity, etc. During passive acquisition, the system can capture user data when the user is acting naturally. For example, during passive acquisition, the user may not be interacting with the system, or it may be over and over again in a game application. Passive player training can include acquiring the system of how the player behaves (for example, body position, facial expressions, actions, spoken words, voice swings), when the user is idle for an experience. For example, in Figure 6, the second user 603 in physical space 601 is not actively interacting with the football game application that is played by the first user 602. The second user 603, while idle, is sitting and the user's head 603 it is resting in the user's hand 603. The system can acquire the user's habits in such scenarios and add them to the user's avatar library.
[000128] The system can acquire any of the natural or idle behaviors in such circumstances and associate them with the user. For example, the system can identify how the player walks and save the movement as the walk animation in the avatar library for that user. The system can assist and listen to a user during activity under various circumstances and scenarios that may not involve a gesture or other active control of the running system or application. For example, when a user greets a friend in a remote gaming experience, the system can detect that the user typically greets them with a greeting such as "Hi, buddy, how are you ". The same user can greet unknown players with a greeting such as "Hello, my name is ...". The system can use the captured data, including voice swings, spoken words and any other movement, and add this to the avatar library for the user's avatar.
[000129] The avatar library can comprise prepackaged animations that can be applied to an avatar to represent the user's gesture or any other user behavior. Through passive acquisition, the system can update, add or rewrite animations in the avatar library. The system or the user can modify aspects of the animation entirely, add, update, reprogram, rewrite or delete entries in the avatar library. For example, a user may not be interacting with the system or gesturing for any application controls. The user can be idle while another user is active in the application. The system can apply a standard animation to the user's avatar that represents idle behavior, such as animating the idle user's avatar to sit slowly and watch the active user perform in the physical space. However, the system can capture data related to the actual idle user behavior when the user is idle in the game application. The system can record user behavior and add it to an entry in the avatar library for an idle animation for that user. The system can rewrite the default animation for idle behavior with an animation that represents user behavior as recorded by the system.
[000130] For example, the system can recognize that when user 603, shown in Figure 6A, is idle or not active, user 603 tends to place the user's head in the user's right hand. The system can store data related to this in a profile or avatar library associated with the user. The animation can represent an addition to the avatar library or it can be a rewrite of a predefined animation for idle activity. Later, the system can apply an animation to the effect of avatar 611, such as the animation of avatar 611 shown in Figure 6B, in which the avatar is seated with the avatar's head in the avatar's right hand. However, over time, the system may recognize that the 603 user rests his head more frequently on the user's left hand, or tends to switch between hands frequently while idle. In this way, the system can continue to refine the avatar library and the animations in the avatar library to more closely represent the user's identified trends. The system can also keep the original animation data and add the redefined animation to the user's avatar library, providing multiple animations for selection.
[000131] Figure 6B reveals the system 600 shown in Figure 6A. Figure 6B reveals an example of only user 602 in physical space 601. In this example, the same user 602 is doing gesture in physical space 601, resulting in an animation of user avatar 606b that is representative of a goalkeeper gesture similar to the one applied to avatar 606a in Figure 6A. However, in this example, the movement of user 602 in the physical space is varied from that performed by user 602 in Figure 6A, but the same gesture is identified and represented by both avatars 606a and 606b.
[000132] Standard gesture packages are gestures from which system and application developers can incorporate gesture recognition into their systems and / or applications. The system can modify aspects of the gesture or re-record the gesture entirely. For example, the system can modify a movement that corresponds to a particular gesture by redefining the movement. For example, user 602b may be injured and unable to dive into physical space 601 as previously performed by user 602a, shown in Figure 6A. The system can recognize the user's varied movement or the user can request the modification of the gesture data. For example, the system can ask a user for a basic predefined gesture or voice command as a demonstration and the user can execute the user's own version of that gesture or voice command. To redefine the gesture, user 602 can perform the movement shown in Figure 6B which comprises a standing position, tilted to the left and swinging his arms to that side. The system can temporarily or permanently replace the pre-defined management data with the user-defined management data. The system can also keep the original gesture data and add the redefined gesture to the user's avatar library, providing multiple gestures that provide a similar result in the application. After redefining or adding the gesture, the system can capture data about the user in the physical space and be able to determine from that data whether the user performed the added or redefined gesture.
[000133] Similarly, the acquisition of an active user may comprise identifying a user's gesture in which the gesture itself is a request to modify an animation in the avatar library and / or modify the behaviors identified by the system and associated with the user. For example, the user can initiate a modification to an animation or start adding an animation to the avatar library by executing a gesture or entering a prepackaged animation modification mode. The system can ask the user for a pre-defined basic animation or voice data as a demonstration, and the user can run the user's own version of that animation or provide speech samples.
[000134] For example, the system can apply an animation to avatar 611 associated with a user 603 that comprises a sitting position with the avatar's head resting on the avatar's hand, similar to that shown in Figure 6B. The system can recognize that when the user is idle or when the user performs a similar movement in the physical space, the user tends to position himself as shown in Figure 6A. However, the user may wish to modify the historical data that indicates this behavior to the user when the user is idle. The user can perform a gesture to initiate a modification of the historical data and / or the animation applied to the user's avatar under particular contextual circumstances (for example, idle activity). The system can ask a user for the current animation associated with particular contextual circumstances, and the user can play a different version of that animation to re-record the animation in the avatar library.
[000135] In both scenarios that the system or user adds, updates or rewrites gesture or animation data, the system can record the user's input and validate the redefined gesture or animation data. For example, if the user is performing a "nod" gesture, the system can detect that the movement corresponds to the "nod" gesture through the gesture recognition mechanism as described above. The system can detect where the gesture starts and stops and ask the user to perform a new movement in the physical space to replace the current "wave" gesture data and / or create an additional "wave" gesture that corresponds to the recorded movement of the user.
[000136] The system can validate the user's registered movement. For example, in a game application that is identified for teenagers, the system may not confirm a user's movement for a gesture if the movement proposed by the user for that gesture comprises a socially unacceptable movement (for example, a rude movement). In this way, the system can identify user behavior that is not desirable and should not be reflected by the user's avatar. Considering the football game application in which the user plays the role of the goalkeeper. The system can identify the user's tendency to curse or make obscene gestures when the user makes a goalkeeper gesture and the result is a failure (that is, the ball goes into the net). In this way, the system can select a different animation to apply to the avatar under these contextual circumstances, such as a user-specific animation from the user's avatar library or a generic animation from a generic avatar library. When the system identifies the goalkeeper gesture and the state of the game (for example, failure to grab the ball), the system can be tuned to apply a non-obscene animation to the avatar instead of the avatar imitating the user's movements in space physicist. Similarly, the system can invalidate the behavior and not include it as an animation in the avatar library to choose when to apply animations to the user's avatar. Thus, some behaviors or indications of such behaviors may not be stored for later use.
[000137] Figure 6B reveals an example in which the system can apply user behaviors and trends to the avatar, whether or not the user is actually in the physical space. In Figure 6B, avatar 611 represents user 603 in Figure 6A. However, user 603 is no longer in physical space 601 in Figure 6B. It may be desirable, when the user is not in the physical space, to provide an avatar that represents the user and is able to behave according to user behaviors (as acquired by the system). For example, the system can continue to display the user's avatar and apply animations to the user's avatar that match the user's trend and behaviors, even if the user leaves the room and is no longer in the system's trace view. Considering a game application, in which a first user selects to play a game against a second user, but that second user may or may not be in the physical space. The system can mimic the second user, reflecting the physical characteristics, trends, behaviors and other characteristics of the user, based on a profile of that second user. The capabilities of the second user can be imitated, for example, if a skill level is applicable to the application. In this way, the first user can have an experience with the user's second avatar that would be similar to the case where when the second user is actually in the physical space and / or is interacting with the system. The system can apply animations to the user's second avatar in such a way that the user's second avatar moves, speaks, uses language, etc., which corresponds to the second user.
[000138] User behaviors 603 can be identified from previous user inputs and / or data captured by the system, over time, in relation to user 603. The avatar increasingly reflects aspects of the user in physical space, including aspects related to the user's traits, behaviors, trends, voice patterns, etc. For example, the system can acquire a user trend and intelligently apply animations to the user's avatar in such a way that the avatar behaves or responds according to the user's identified trends. In this way, training an avatar of the animations to perform can comprise acquiring a user's input history and shaping the avatar to look like the user.
[000139] The system can acquire how the user responds to various scenarios and capture the status of the user's characteristics. For example, if a user is standing idle during a game application, where another user is the active player, the system can detect the user's body position and the activities the user can perform while he is not the active player. The user can drink something, remain idle against the wall, watch the active player or the screen, read a book or any other activity. For example, it may be common for the user to read a free while he is not the active player. The system can recognize this trend and store information related to the trend in a user profile.
[000140] In Figure 6A, the system may have detected body language, positioning, spoken language, etc. user 603, while user 603 was watching user 602 actively participate in the football game app. The system can have other historical data in relation to user 603, captured for a period of time. In Figure 6B, user 603 is not in physical space 601, however, user avatar 611 can be displayed on display device 612. The system can apply animations to user avatar 611 that correspond to the historical data collected for the behaviors of the user 603. In this way, the system can reveal the avatar of the user 611 in a sitting position similar to how the user typically behaves when the player is not active in the game. The system can provide additional animations, such as placing the user on seats or benches that can be found in a typical football game and can be where observers typical of a football game sit.
[000141] The system can store data related to user entries in an avatar library, such as the avatar library 196 shown in Figure 2. The avatar library can be associated with a particular user or stored in a user profile, such as profile 198, for example. As described above, the system allows users to replace or add to the main animation library. In another example, the animations in the library can be animations inserted and registered by the user in the avatar library. For example, the system or the user can reprogram an animation to reflect the user's actual movements or behaviors, captured by a capture device, for example. In this way, animations can be added or replaced in the avatar animation library.
[000142] The system can also comprise a universal or generic avatar library that comprises a main animation library. In an exemplary mode, the animations applied to the avatar can be animations selected from a library of pre-packaged animations, such as those that come with a program, application or system, for example. The selected animations can be those that correspond to the user input acquired by the system to reflect certain behaviors. The pre-set animations can be defined for an application or for a system. For example, an open / close file animation applied to an avatar can be the same system-wide.
[000143] Avatar libraries, including an avatar library that corresponds to a user, can be accessible from within an application, across applications or across the system. For example, the system can identify user behaviors across multiple applications. The system can collect all data related to user behavior across applications and store it in a universally acceptable avatar library. The system can then access the avatar library and apply avatar library animations to the avatar under any circumstances. For example, the system can identify that the user typically gnaws his nails when the user is not the active player in a game. Thus, when the user is interacting with the system while running a non-game application, the system can apply a nail-biting animation to the user's avatar when there are delays in the user's interaction with the application, such as when the user is waiting for a document to save or for a debugger to operate in the software.
[000144] The system can display a user avatar at any time and at any time apply animations to the avatar that reflect the user's behavior. Over time, the system can apply user animations in any type of scenario with or without user assistance. For example, using the avatar library and stored data associated with user behavior, the system can generate a voicemail message using the voice patterns and volumes identified by the user without user input. The system could mimic user behaviors when applying animations to an avatar on an app panel, communicating with friends, in game apps or similar. The user may or may not be controlling the avatar (preferably, the system may be providing similarities to the user's avatar. The system may apply animations to an avatar associated with a particular user, whether or not the particular user is present in the physical space. For example, the user could be recording a document in a word processing application and the system could display and animate an avatar on the screen that looks like the user The system could apply animations from the user's avatar library.
[000145] The system can identify that the user behaves differently between applications or across different environments. For example, in a game app, the user can watch and watch the display and / or the other user when the other user is the active player in the game. However, in a non-game application, the user may not watch the screen when another user is active or if the application is saving a document or operating a debugger, for example. The user can bite his nails or leave the room.
[000146] The avatar can be displayed, even if the avatar is not needed by the application to control any aspect of the application or the system. An avatar can be displayed, running and behaving as acquired from user inputs, typically acquired through the system after a series of inputs that are sufficient to identify behaviors, responses, trends or the like. For example, a first user may be telling a story in the physical space and selecting an avatar to be displayed on the screen to animate the story as it is told. The selected avatar can be an avatar associated with a user who is not present in the physical space. However, the system may have enough information stored in relation to the user who is not present to animate the avatar in such a way as to resemble the behavior of the user who is not present. The system could use the avatar that enters an avatar library full of animations that correspond to the user behaviors that the system has acquired over time. In this way, it would appear that the user is present and provides inputs, due to the fact that the avatar is able to represent the user as well.
[000147] As described, the system 600 can identify data from the physical space that are indicative of user behaviors. For example, the 600 system can collect information related to user movements, facial expressions, body language, emotions, etc., in the physical space. The system can use body posture recognition techniques to assist in identifying the emotions or temperament of the human target. For example, the 600 system can analyze and track a skeletal model of the user to determine how the user moves. The 600 system can track the user's body and the movements made by the user's body, including gestures that control aspects of the system, such as the application, operating system or the like. The system can identify the user's body posture, facial expressions, expressions and tone of voice, targeted contemplations, etc. The user's vocal expressions can provide an indication of the user's temperament. For example, the language used, the tone of voice, step, volume and the like can drive a sense of the user's temperament. For example, a harsh tone can be interpreted as anger or aggression. Other tones can be tense, modal, panting, whispering, hissing, calm, excited, happy or any other tone. The system can identify the user's facial movements, such as the movement of the user's eyebrows and / or a frown or similar expression. The system can detect words spoken by the user and the user's tone of voice or the user's body position, etc. For example, the system can detect a person's right arm and have the fidelity to distinguish the upper arm, forearm, fingers, thumb, finger joints, etc. Thus, user characteristics are good indicators of user behaviors and trends.
[000148] In the example shown in Figure 6A, user 603 is seated with a head tilted to the side, a right elbow resting on the knee and the head being supported by the user's right hand. Facial expressions, body position, spoken words or any other detectable characteristic of the user can be applied to the user's 611 avatar, and modified if appropriate. For example, user 603 is seated on a chair, but the system modifies the user to be seated on benches or seats that can be found at a football game.
[000149] System 600 can compare the circumstances of the application with a user avatar library to determine which animations should be applied to the visual representation of the user. For example, in the soccer game application described above, the state of the game may be the user's success in catching a ball. The system can apply the user's dance animation to the avatar as the system identifies this behavior as typical for that user under these circumstances. In another example, where a first user is present in the physical space and telling a story with the avatar to a second user selected to act outside the story on the display. The second user may or may not be present, but the avatar may act outside the story on the display, reflecting the behaviors identified for the second user. For example, the story may describe a person jumping over a stream. The avatar, which looks like the second user, can be shown jumping over a stream, but animated to look like the second user, reflecting the behavior of the second user. For example, the system can identify user behaviors that are typical when a user is jumping, or when a user is scared, or having fun. The system can apply animations to the avatar that correspond to the circumstance and the data stored about the user's behavior in such circumstances.
[000150] Figure 7A reveals an example of two users playing remotely against each other in a boxing game application. Remote users interact with a target 10 tracking, analysis and recognition system in their respective physical spaces, and are able to interact with each other over a network connection. Each system can provide live visual feedback from each physical space to the other system. In Figure 7A, two users, User # 1 and User # 2, are interacting with the system by running the boxing game application. In this way, each system can capture live data in relation to each user and render the visual representation that corresponds to each user and map the movement of each user. In Figure 7B, the second user is no longer present in the physical space and is absent from the tracking view of the target tracking, analysis and recognition system. However, the system collected data regarding user behaviors, in this case the boxing game application, previous cases, or any other interaction by the user with the system or an application. The system is capable of applying animations from an avatar library associated with the user that reflect the user's behaviors. Thus, based on the history of user input, the system is able to render a visual representation that looks very similar to the user. User # 1 can have an experience with the user's second avatar that would be similar to the case where the actual user data was applied to the avatar.
[000151] Figure 8 shows an example method of acquiring user behaviors and Figure 9 shows an example method of applying behavior selection animations for the user avatar. For example, in 802, the system receives data from a physical space that includes a user. As described above, a capture device can capture data from a scene, such as the depth image of the scene and scan targets in the scene. The capture device can determine whether one or more targets in the scene correspond to a human target such as a user. Each target or object that corresponds to the human body model can then be scanned to generate an associated skeletal model. The skeletal model can then be provided to the computational environment to track the skeletal model and render a visual representation associated with the skeletal model.
[000152] In 804, the system can identify characteristics indicative of user behaviors. The characteristics indicative of user behavior may include physical characteristics, facial features, speech patterns, vocabulary, voice commands, a gesture, movement or body position. For example, the system can use body recognition and facial recognition techniques to identify body and facial features. User behaviors, which may include certain facial expressions and body movements, can be identified. For example, a system may have a capture device that captures data about the user in the physical space. The system can identify the user's characteristics, trends, voice patterns, behaviors, gestures, etc. The system can identify characteristics indicative of user behavior passively and / or actively. For example, passive acquisition may comprise identifying the characteristics of the user when the user is naturally acting in the physical space, and active acquisition may comprise identifying the characteristics of the user when the user is performing a gesture. Over time, the system can acquire a user trend and intelligently apply animations to the user's avatar in such a way that the avatar behaves or responds according to the user's identified trends. In this way, training an avatar of the animations to perform can comprise acquiring input from a user and shaping the avatar to look like the user.
[000153] In 805, the system can add or re-record an animation in a pre-packaged avatar library. For example, the prepackaged avatar library can be a set of pre-defined animations provided with an application. Rewriting an animation in the prepackaged avatar library may comprise updating the animation to match a history of the characteristics indicative of user behavior, as stored in 808. Adding an animation to the prepackaged avatar library can understand recording a user movement in the physical space and adding an animation representing the user movement to the avatar library. The addition or rewriting of an animation in the avatar library can be requested by a user gesture. For example, the user can perform a gesture to enter in a modification mode, and the system can record the user's movements in the modification mode and apply them to the added or rewritten animation.
[000154] In 806, the system can generate an animation and add it to an avatar library. The avatar library may or may not be prepackaged. For example, the avatar library can comprise animations registered by the user and may or may not be provided by the system. In this way, the user can define all the animations in the avatar library that are applied to the user's avatar. The system may have to validate any animations added, rewritten or generated. For example, if the user performs an obscene animation, the animation can be invalidated and not inserted in the historical data or not used to re-record an animation. Alternatively, the avatar library can be a combination of user-recorded animations and / or prepackaged animations.
[000155] In 807, the system can correlate user behaviors with particular circumstances. For example, a user can behave in a certain way when the user succeeds in a game application or when the user is idle in an experience while watching an active user play a game. Data related to user behaviors, including the correlation of user behaviors with any particular circumstances, can be stored as in an avatar library at 806. As described above, the avatar library can comprise prepackaged animations or the library avatar can be associated with a particular user who has customized animations for that user. User-specific information may also include trends in game modes by one or more users. For example, if a user tends to behave or react in a certain way, the system can track the user's tendency to more accurately reflect user behaviors under certain circumstances. In this way, the system can begin to track user trends and use the information to more accurately reflect user behaviors.
[000156] In 806, the behaviors and animations corresponding to those behaviors, associated with a user in the physical space, can be stored as part of a user profile. The profile can be specific to a physical space or a particular user, for example, and can be part of or include aspects of the avatar library. Avatar data, including user traits, can become part of the user's profile. A profile can be accessed by entering a user in a capture scene. If a profile matches a user based on a password, user selection, body size, speech recognition or the like, then the profile can be used to determine the user's visual representation.
[000157] The historical data for a user can be monitored to store information for the user's profile. For example, the system can detect specific behavioral features for the user, such as user behaviors, speech patterns, emotions, sounds or the like. The system can apply these features to the visual representation of the user when it applies a temperament to the visual representation. For example, if the system identifies user behaviors and selects an animation that comprises speech to reflect the behavior, the visual representation voice can be standardized based on the user's speech patterns or it can also be a record of the user's own voice. .
[000158] The system can render an avatar associated with the user and, in 810, apply an animation that is representative of user behaviors to the user's avatar. In 808, the system can identify contextual circumstances. The contextual circumstance may comprise the condition of a user's physical environment, the condition of a user's virtual environment, a system status, an application status, a user success in an application, a user failure in an application , an active / non-active status of the user, a presence of a second user, or a gesture or the like. By comparing contextual circumstances with historical data, the system can identify any correlations between historical data and the contextual circumstance. If a correlation is identified, the system can select an animation representative of the user behavior that corresponds to the contextual circumstance.
[000159] Figure 9 shows a method for applying animations to a user's avatar. Animations can be applied whether or not the user is present in the physical space. In this way, the system can provide a reflection of the user, in the form of the avatar that has similarities to the user and behave according to the user. The user's avatar can represent the user even if the user is not interacting with the application / system, such as if the user is not present in the physical space. In 902, the system rendered a visual representation of the user. Based on the information stored in the avatar library, such as that described in Figure 8, animations can be applied to the user's avatar that corresponds to the user.
[000160] The system can select animations, in 904, for application to the avatar that correspond to the entries acquired from that particular user. If the user is not physically present in the physical space, as in 906, the animations can correspond to the user behavior acquired by the system and stored in an avatar library associated with that user. In this way, the avatar may appear to behave in a similar way to the user, even if the user is not available in the physical space for capture by the capture device. A second user can request that the system render a visual representation of the user who is not physically present to simulate an experience with the first user.
[000161] If the user is present, as in 908, the animations can be selected from the avatar library or mapped directly to the user in the physical space as captured by the system. The animation can be selected from an avatar library and can be representative of user behavior identified from a history of user data. In this way, the animations can be selected based on the previous identity of behaviors captured by the system. Even if the user is present in the physical space and the data is captured by the capture device in relation to the user, it may be desirable to apply an animation from the avatar library instead of mapping the avatar directly to the user.
[000162] In an exemplary mode, the animations applied to the avatar can be animations selected from a library of prepackaged animations, such as those that come with a program, application or system, for example. The selected animations can be those that correspond to the user input acquired by the system. In another exemplary modality, the animations in the library can be animations inserted and registered by the user in the avatar's animation vocabulary. For example, the system or the user can reprogram an animation to reflect the user's actual movements or behaviors, captured by a capture device, for example. In this way, animations can be added or replaced in the avatar animation library. Over time, the avatar in the virtual space may appear to become a reflection of the user in the physical space, including the user's traits, behaviors, trends, voice patterns, etc.
[000163] It should be understood that the configurations and / or approaches described in this document are exemplary in nature, and that these modalities or examples should not be considered limiting. The specific routines or methods described in this document can represent one or more among numerous processing strategies. As such, several illustrated acts can be performed in the illustrated sequence, in other sequences, in parallel or similar. Likewise, the order of the processes described above can be changed.
[000164] Additionally, although the present disclosure has been described together with the particular aspects, as illustrated in the various figures, it is understood that other similar aspects can be used or modifications and additions can be made in the aspects described to perform the same function of the present revelation without departing from it. The subject of the present disclosure includes all innovative and non-obvious combinations and subcombination of the various processes, systems and configurations, and other features, functions, acts and / or properties disclosed herein, as well as any and all equivalents thereof. In this way, the methods and apparatus of the revealed modalities, or certain aspects or parts thereof, may take the form of program code (ie instructions) embedded in tangible media, such as floppy disks, CD-ROMs, hard drives or any another machine-readable storage medium. When the program code is loaded and executed by a machine, such as a computer, the machine becomes a device configured to put the revealed modalities into practice.
[000165] In addition to the specific implementations explicitly presented in this document, other aspects and implementations are apparent to those elements versed in the technique from the consideration of the specification disclosed in this document. Therefore, the present disclosure should not be limited to any single aspect, but, preferably, interpreted in amplitude and scope according to the appended claims. For example, the various procedures described in this document can be implemented with hardware or software, or a combination of both.
权利要求:
Claims (12)
[0001]
1. Method for applying an animation to a visual representation (40) of a user (18), characterized by the fact that it comprises the steps of: selecting a first animation from a plurality of stored animations, based on a first image indicative of a user (18) currently in a physical capture area, the first image being received from a capture device (20); applying the first animation to a visual representation (40) of the user (18) on a display device (193); updating at least one animation of the plurality of stored animations based on at least part of a user characteristic (18) identified based on at least part of the first image; in response to determining from a second image of the physical capture area that the user (18) is not located in the physical capture area, select a second animation from the plurality of stored animations based, at least in part, on a characteristic the user (18) from a previous indicative image of the user (18) in the physical capture area or in another physical capture area; and in response to determining that a second user (18) is interacting with a computer application in which the visual representation (40) of the user (18) is made, applying the second animation to a visual representation (40) of the user (18 ) on the display device (193) to animate the visual representation (40) of the user (18) while the user (18) is not located in the physical capture area through which the visual representation (40) of the user (18) it is animated to behave according to the user's characteristic (18) in the second animation.
[0002]
2. Method, according to claim 1, characterized by the fact that the first animation does not correspond to data currently captured by the user's capture device (20) (18) present in the physical space.
[0003]
3. Method, according to claim 1, characterized by the fact that the plurality of stored animations is a prepackaged plurality of animations, and in which selecting the second animation from the plurality of stored animations comprises: selecting the second animation a from the prepackaged plurality of animations.
[0004]
4. Method, according to claim 1, characterized by the fact that it still comprises: re-recording the first animation in the plurality of stored animations to correspond to the movement captured by the user (18) by a capture device (20), the re-recording comprising replace a gesture in the first animation with a user gesture (18).
[0005]
5. Method, according to claim 4, characterized by the fact that the re-recording of the animation is requested by a gesture from the user (18) in the physical capture area.
[0006]
6. Method, according to claim 1, characterized by the fact that the visual representation (40) of the user (18) is animated such that the user (18) appears to be present in the physical capture area and / or controlling the representation visual (40) of the user (18).
[0007]
7. Computer-readable memory storing a method characterized by the fact that the method comprises the steps of: selecting a first animation from a plurality of stored animations, based on a first indicative image of a user (18) being presently in a physical capture area, the first image being received from a capture device (20); applying the first animation to a visual representation (40) of the user (18) on a display device (193); update at least one animation of the plurality of stored animations based, at least in part, on a user characteristic (18) identified based, at least in part, on the first image; in response to determining from a second image of the physical capture area that the user (18) is not located in the physical capture area, select a second animation from the plurality of stored animations based, at least in part, on a characteristic the user (18) from a previous indicative image of the user (18) in the physical capture area or in another physical capture area; and in response to determining that a second user (18) is interacting with a computer application in which the visual representation (40) of the user (18) is made, applying the second animation to a visual representation (40) of the user (18 ) on the display device (193) to animate the visual representation (40) of the user (18) while the user (18) is not located in the physical capture area through which the visual representation (40) of the user (18) is animated to behave according to the user's characteristic (18) in the second animation.
[0008]
8. Computer-readable memory, according to claim 7, characterized by the fact that the first animation does not correspond to data currently captured by the capture device (20) of the user (18) present in the physical space.
[0009]
9. Computer-readable memory according to claim 7, characterized by the fact that the plurality of stored animations is a prepackaged plurality of animations, and in which selecting the second animation from the plurality of stored animations comprises: selecting the second animation from the plurality of prepackaged animations.
[0010]
10. Computer-readable memory, according to claim 7, characterized by the fact that the method stored therein still comprises the step of: re-recording the first animation in the plurality of stored animations to correspond to the user's captured movement (18 ) by a capture device (20).
[0011]
11. Computer-readable memory, according to claim 10, characterized by the fact that the step of re-recording the animation is requested by a gesture from the user (18) in the physical capture area.
[0012]
12. Computer-readable memory, according to claim 7, characterized by the fact that the visual representation (40) of the user (18) is animated such that the user (18) appears to be present in the physical capture area and / or controlling the visual representation (40) of the user (18).
类似技术:
公开号 | 公开日 | 专利标题
BR112012000698B1|2020-12-15|METHOD FOR APPLYING AN ANIMATION IN A VISUAL REPRESENTATION OF A USER AND MEMORY READABLE BY COMPUTER
US9519989B2|2016-12-13|Visual representation expression based on player expression
US10398972B2|2019-09-03|Assigning gesture dictionaries
US9824480B2|2017-11-21|Chaining animations
JP5782440B2|2015-09-24|Method and system for automatically generating visual display
US9245177B2|2016-01-26|Limiting avatar gesture display
US20100302138A1|2010-12-02|Methods and systems for defining or modifying a visual representation
JP5859456B2|2016-02-10|Camera navigation for presentations
TW201203089A|2012-01-16|User tracking feedback
BRPI1011193B1|2019-12-03|method and system for providing assistance with respect to a gesture performed by the user
同族专利:
公开号 | 公开日
JP5632474B2|2014-11-26|
KR20120052228A|2012-05-23|
EP2454722A2|2012-05-23|
US9159151B2|2015-10-13|
WO2011008659A3|2011-03-31|
WO2011008659A2|2011-01-20|
CN102473320B|2014-09-10|
CN102473320A|2012-05-23|
EP2454722A4|2017-03-01|
CA2767788A1|2011-01-20|
BR112012000698A2|2016-02-16|
JP2012533134A|2012-12-20|
RU2554548C2|2015-06-27|
KR101700468B1|2017-01-26|
US20110007079A1|2011-01-13|
RU2012101115A|2013-07-20|
CA2767788C|2018-03-06|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题

US4288078A|1979-11-20|1981-09-08|Lugo Julio I|Game apparatus|
US4695953A|1983-08-25|1987-09-22|Blair Preston E|TV animation interactively controlled by the viewer|
US4711543A|1986-04-14|1987-12-08|Blair Preston E|TV animation interactively controlled by the viewer|
US4630910A|1984-02-16|1986-12-23|Robotic Vision Systems, Inc.|Method of measuring in three-dimensions at high speed|
US4627620A|1984-12-26|1986-12-09|Yang John P|Electronic athlete trainer for improving skills in reflex, speed and accuracy|
US4645458A|1985-04-15|1987-02-24|Harald Phillip|Athletic evaluation and training apparatus|
US4702475A|1985-08-16|1987-10-27|Innovating Training Products, Inc.|Sports technique and reaction training system|
US4843568A|1986-04-11|1989-06-27|Krueger Myron W|Real time perception of and response to the actions of an unencumbered participant/user|
US4796997A|1986-05-27|1989-01-10|Synthetic Vision Systems, Inc.|Method and system for high-speed, 3-D imaging of an object at a vision station|
US5184295A|1986-05-30|1993-02-02|Mann Ralph V|System and method for teaching physical skills|
US4751642A|1986-08-29|1988-06-14|Silva John M|Interactive sports simulation system with physiological sensing and psychological conditioning|
US4809065A|1986-12-01|1989-02-28|Kabushiki Kaisha Toshiba|Interactive system and related method for displaying data to produce a three-dimensional image of an object|
US4817950A|1987-05-08|1989-04-04|Goo Paul E|Video game control unit and attitude sensor|
US5239463A|1988-08-04|1993-08-24|Blair Preston E|Method and apparatus for player interaction with animated characters and objects|
US5239464A|1988-08-04|1993-08-24|Blair Preston E|Interactive video system providing repeated switching of multiple tracks of actions sequences|
US4901362A|1988-08-08|1990-02-13|Raytheon Company|Method of recognizing patterns|
US4893183A|1988-08-11|1990-01-09|Carnegie-Mellon University|Robotic vision system|
JPH02199526A|1988-10-14|1990-08-07|David G Capper|Control interface device|
US5469740A|1989-07-14|1995-11-28|Impulse Technology, Inc.|Interactive video testing and training system|
US4925189A|1989-01-13|1990-05-15|Braeunig Thomas F|Body-mounted video game exercise device|
US5229756A|1989-02-07|1993-07-20|Yamaha Corporation|Image control apparatus|
JPH03103822U|1990-02-13|1991-10-29|
US5101444A|1990-05-18|1992-03-31|Panacea, Inc.|Method and apparatus for high speed object location|
US5148154A|1990-12-04|1992-09-15|Sony Corporation Of America|Multi-dimensional user interface|
US5534917A|1991-05-09|1996-07-09|Very Vivid, Inc.|Video image based control system|
US5295491A|1991-09-26|1994-03-22|Sam Technology, Inc.|Non-invasive human neurocognitive performance capability testing method and system|
US6054991A|1991-12-02|2000-04-25|Texas Instruments Incorporated|Method of modeling player position and movement in a virtual reality system|
CA2101633A1|1991-12-03|1993-06-04|Barry J. French|Interactive video testing and training system|
US5875108A|1991-12-23|1999-02-23|Hoffberg; Steven M.|Ergonomic man-machine interface incorporating adaptive pattern recognition based control system|
US5417210A|1992-05-27|1995-05-23|International Business Machines Corporation|System and method for augmentation of endoscopic surgery|
JPH07325934A|1992-07-10|1995-12-12|Walt Disney Co:The|Method and equipment for provision of graphics enhanced to virtual world|
US5999908A|1992-08-06|1999-12-07|Abelow; Daniel H.|Customer-based product design module|
US5320538A|1992-09-23|1994-06-14|Hughes Training, Inc.|Interactive aircraft training system and method|
IT1257294B|1992-11-20|1996-01-12|DEVICE SUITABLE TO DETECT THE CONFIGURATION OF A PHYSIOLOGICAL-DISTAL UNIT, TO BE USED IN PARTICULAR AS AN ADVANCED INTERFACE FOR MACHINES AND CALCULATORS.|
US5495576A|1993-01-11|1996-02-27|Ritchey; Kurtis J.|Panoramic image based virtual reality/telepresence audio-visual system and method|
US5690582A|1993-02-02|1997-11-25|Tectrix Fitness Equipment, Inc.|Interactive exercise apparatus|
JP2799126B2|1993-03-26|1998-09-17|株式会社ナムコ|Video game device and game input device|
US5405152A|1993-06-08|1995-04-11|The Walt Disney Company|Method and apparatus for an interactive video game with physical feedback|
US5454043A|1993-07-30|1995-09-26|Mitsubishi Electric Research Laboratories, Inc.|Dynamic and static hand gesture recognition through low-level image analysis|
US5423554A|1993-09-24|1995-06-13|Metamedia Ventures, Inc.|Virtual reality game method and apparatus|
US5980256A|1993-10-29|1999-11-09|Carmein; David E. E.|Virtual reality system with enhanced sensory apparatus|
JP3419050B2|1993-11-19|2003-06-23|株式会社日立製作所|Input device|
US5347306A|1993-12-17|1994-09-13|Mitsubishi Electric Research Laboratories, Inc.|Animated electronic meeting place|
JP2552427B2|1993-12-28|1996-11-13|コナミ株式会社|Tv play system|
US5577981A|1994-01-19|1996-11-26|Jarvik; Robert|Virtual reality exercise machine and computer controlled video system|
US5580249A|1994-02-14|1996-12-03|Sarcos Group|Apparatus for simulating mobility of a human|
US5597309A|1994-03-28|1997-01-28|Riess; Thomas|Method and apparatus for treatment of gait problems associated with parkinson's disease|
US5385519A|1994-04-19|1995-01-31|Hsu; Chi-Hsueh|Running machine|
US5524637A|1994-06-29|1996-06-11|Erickson; Jon W.|Interactive system for measuring physiological exertion|
JPH0844490A|1994-07-28|1996-02-16|Matsushita Electric Ind Co Ltd|Interface device|
US5563988A|1994-08-01|1996-10-08|Massachusetts Institute Of Technology|Method and system for facilitating wireless, full-body, real-time user interaction with a digitally represented visual environment|
US6714665B1|1994-09-02|2004-03-30|Sarnoff Corporation|Fully automated iris recognition system utilizing wide and narrow fields of view|
US5516105A|1994-10-06|1996-05-14|Exergame, Inc.|Acceleration activated joystick|
US5638300A|1994-12-05|1997-06-10|Johnson; Lee E.|Golf swing analysis system|
JPH08161292A|1994-12-09|1996-06-21|Matsushita Electric Ind Co Ltd|Method and system for detecting congestion degree|
US5594469A|1995-02-21|1997-01-14|Mitsubishi Electric Information Technology Center America Inc.|Hand gesture machine control system|
US5682229A|1995-04-14|1997-10-28|Schwartz Electro-Optics, Inc.|Laser range camera|
US5913727A|1995-06-02|1999-06-22|Ahdoot; Ned|Interactive movement and contact simulation game|
WO1996041304A1|1995-06-07|1996-12-19|The Trustees Of Columbia University In The City Of New York|Apparatus and methods for determining the three-dimensional shape of an object using active illumination and relative blurring in two images due to defocus|
DE69635858T2|1995-06-22|2006-11-30|3Dv Systems Ltd.|TELECENTRIC 3D CAMERA AND RELATED METHOD|
IL114278A|1995-06-22|2010-06-16|Microsoft Internat Holdings B|Camera and method|
US5682196A|1995-06-22|1997-10-28|Actv, Inc.|Three-dimensional video presentation system providing interactive 3D presentation with personalized audio responses for multiple viewers|
US5702323A|1995-07-26|1997-12-30|Poulton; Craig K.|Electronic exercise enhancer|
US6430997B1|1995-11-06|2002-08-13|Trazer Technologies, Inc.|System and method for tracking and assessing movement skills in multidimensional space|
US6073489A|1995-11-06|2000-06-13|French; Barry J.|Testing and training system for assessing the ability of a player to complete a task|
US6308565B1|1995-11-06|2001-10-30|Impulse Technology Ltd.|System and method for tracking and assessing movement skills in multidimensional space|
US6098458A|1995-11-06|2000-08-08|Impulse Technology, Ltd.|Testing and training system for assessing movement and agility skills without a confining field|
EP1059970A2|1998-03-03|2000-12-20|Arena, Inc,|System and method for tracking and assessing movement skills in multidimensional space|
US5933125A|1995-11-27|1999-08-03|Cae Electronics, Ltd.|Method and apparatus for reducing instability in the display of a virtual environment|
US6183364B1|1995-12-21|2001-02-06|Karen I. Trovato|Simulated environment using procedural animation in a simulated city|
US5641288A|1996-01-11|1997-06-24|Zaenglein, Jr.; William G.|Shooting simulating process and training device using a virtual reality display screen|
CA2253626A1|1996-05-08|1997-11-13|Bruce R. Bacon|Real time simulation using position sensing|
US6173066B1|1996-05-21|2001-01-09|Cybernet Systems Corporation|Pose determination and tracking by matching 3D objects to a 2D sensor|
US5989157A|1996-08-06|1999-11-23|Walton; Charles A.|Exercising system with electronic inertial game playing|
EP0959444A4|1996-08-14|2005-12-07|Nurakhmed Nurislamovic Latypov|Method for following and imaging a subject's three-dimensional position and orientation, method for presenting a virtual space to a subject, and systems for implementing said methods|
JP3064928B2|1996-09-20|2000-07-12|日本電気株式会社|Subject extraction method|
DE69626208T2|1996-12-20|2003-11-13|Hitachi Europ Ltd|Method and system for recognizing hand gestures|
US6009210A|1997-03-05|1999-12-28|Digital Equipment Corporation|Hands-free interface to a virtual reality environment using head tracking|
US6100896A|1997-03-24|2000-08-08|Mitsubishi Electric Information Technology Center America, Inc.|System for designing graphical multi-participant environments|
US5877803A|1997-04-07|1999-03-02|Tritech Mircoelectronics International, Ltd.|3-D image detector|
US6215898B1|1997-04-15|2001-04-10|Interval Research Corporation|Data processing system and method|
JP3077745B2|1997-07-31|2000-08-14|日本電気株式会社|Data processing method and apparatus, information storage medium|
US6188777B1|1997-08-01|2001-02-13|Interval Research Corporation|Method and apparatus for personnel detection and tracking|
US6289112B1|1997-08-22|2001-09-11|International Business Machines Corporation|System and method for determining block direction in fingerprint images|
US6720949B1|1997-08-22|2004-04-13|Timothy R. Pryor|Man machine interfaces and applications|
AUPO894497A0|1997-09-02|1997-09-25|Xenotech Research Pty Ltd|Image processing method and apparatus|
EP1017973A1|1997-09-24|2000-07-12|3DV Systems Ltd.|Acoustical imaging system|
EP0905644A3|1997-09-26|2004-02-25|Matsushita Electric Industrial Co., Ltd.|Hand gesture recognizing device|
US6141463A|1997-10-10|2000-10-31|Electric Planet Interactive|Method and system for estimating jointed-figure configurations|
AU9808298A|1997-10-15|1999-05-03|Electric Planet, Inc.|A system and method for generating an animatable character|
US6072494A|1997-10-15|2000-06-06|Electric Planet, Inc.|Method and apparatus for real-time gesture recognition|
US6101289A|1997-10-15|2000-08-08|Electric Planet, Inc.|Method and apparatus for unencumbered capture of an object|
AU1099899A|1997-10-15|1999-05-03|Electric Planet, Inc.|Method and apparatus for performing a clean background subtraction|
US6130677A|1997-10-15|2000-10-10|Electric Planet, Inc.|Interactive computer vision system|
US6176782B1|1997-12-22|2001-01-23|Philips Electronics North America Corp.|Motion-based command generation technology|
US6181343B1|1997-12-23|2001-01-30|Philips Electronics North America Corp.|System and method for permitting three-dimensional navigation through a virtual reality environment using camera-based gesture inputs|
US6159100A|1998-04-23|2000-12-12|Smith; Michael D.|Virtual reality game|
US6077201A|1998-06-12|2000-06-20|Cheng; Chau-Yang|Exercise bicycle|
AU5106499A|1998-07-17|2000-02-07|Franklin Institute, The|A system containing a multi-user virtual learning environment|
US6801637B2|1999-08-10|2004-10-05|Cybernet Systems Corporation|Optical body tracker|
US6950534B2|1998-08-10|2005-09-27|Cybernet Systems Corporation|Gesture-controlled interfaces for self-service machines and other applications|
US20010008561A1|1999-08-10|2001-07-19|Paul George V.|Real-time object tracking system|
US7050606B2|1999-08-10|2006-05-23|Cybernet Systems Corporation|Tracking and gesture recognition system particularly suited to vehicular control applications|
US6681031B2|1998-08-10|2004-01-20|Cybernet Systems Corporation|Gesture-controlled interfaces for self-service machines and other applications|
US7121946B2|1998-08-10|2006-10-17|Cybernet Systems Corporation|Real-time head tracking system for computer games and other applications|
US7036094B1|1998-08-10|2006-04-25|Cybernet Systems Corporation|Behavior recognition system|
IL126284A|1998-09-17|2002-12-01|Netmor Ltd|System and method for three dimensional positioning and tracking|
EP0991011B1|1998-09-28|2007-07-25|Matsushita Electric Industrial Co., Ltd.|Method and device for segmenting hand gestures|
US6501515B1|1998-10-13|2002-12-31|Sony Corporation|Remote control system|
US6661918B1|1998-12-04|2003-12-09|Interval Research Corporation|Background estimation and segmentation based on range and color|
US6147678A|1998-12-09|2000-11-14|Lucent Technologies Inc.|Video hand image-three-dimensional computer interface with multiple degrees of freedom|
WO2000036372A1|1998-12-16|2000-06-22|3Dv Systems, Ltd.|Self gating photosurface|
US6570555B1|1998-12-30|2003-05-27|Fuji Xerox Co., Ltd.|Method and apparatus for embodied conversational characters with multimodal input/output in an interface device|
US6363160B1|1999-01-22|2002-03-26|Intel Corporation|Interface using pattern recognition and tracking|
US7003134B1|1999-03-08|2006-02-21|Vulcan Patents Llc|Three dimensional object pose estimation which employs dense depth information|
US6299308B1|1999-04-02|2001-10-09|Cybernet Systems Corporation|Low-cost non-imaging eye tracker system for computer control|
US6512838B1|1999-09-22|2003-01-28|Canesta, Inc.|Methods for enhancing performance and data acquired from three-dimensional image systems|
US6503195B1|1999-05-24|2003-01-07|University Of North Carolina At Chapel Hill|Methods and systems for real-time structured light depth extraction and endoscope using real-time structured light depth extraction|
US6476834B1|1999-05-28|2002-11-05|International Business Machines Corporation|Dynamic creation of selectable items on surfaces|
US6873723B1|1999-06-30|2005-03-29|Intel Corporation|Segmenting three-dimensional video images using stereo|
US6738066B1|1999-07-30|2004-05-18|Electric Plant, Inc.|System, method and article of manufacture for detecting collisions between video images generated by a camera and an object depicted on a display|
US7113918B1|1999-08-01|2006-09-26|Electric Planet, Inc.|Method for video enabled electronic commerce|
EP1214609B1|1999-09-08|2004-12-15|3DV Systems Ltd.|3d imaging system|
US6614422B1|1999-11-04|2003-09-02|Canesta, Inc.|Method and apparatus for entering data using a virtual input device|
JP2001229398A|1999-11-24|2001-08-24|Fuji Xerox Co Ltd|Method and device for acquiring performance animation gesture and reproducing the same on animation character|
DE19960180B4|1999-12-14|2006-03-09|Rheinmetall W & M Gmbh|Method for producing an explosive projectile|
US6674877B1|2000-02-03|2004-01-06|Microsoft Corporation|System and method for visually tracking occluded objects in real time|
US6663491B2|2000-02-18|2003-12-16|Namco Ltd.|Game apparatus, storage medium and computer program that adjust tempo of sound|
US6633294B1|2000-03-09|2003-10-14|Seth Rosenthal|Method and apparatus for using captured high density motion for animation|
EP1152261A1|2000-04-28|2001-11-07|CSEM Centre Suisse d'Electronique et de Microtechnique SA|Device and method for spatially resolved photodetection and demodulation of modulated electromagnetic waves|
US6545682B1|2000-05-24|2003-04-08|There, Inc.|Method and apparatus for creating and customizing avatars using genetic paradigm|
US6640202B1|2000-05-25|2003-10-28|International Business Machines Corporation|Elastic sensor mesh system for 3-dimensional measurement, mapping and kinematics applications|
US6731799B1|2000-06-01|2004-05-04|University Of Washington|Object segmentation with background extraction and moving boundary techniques|
US6788809B1|2000-06-30|2004-09-07|Intel Corporation|System and method for gesture recognition in three dimensions using stereo imaging and color vision|
US7227526B2|2000-07-24|2007-06-05|Gesturetek, Inc.|Video-based image control system|
US7319992B2|2000-09-25|2008-01-15|The Mission Corporation|Method and apparatus for delivering a virtual reality environment|
US7058204B2|2000-10-03|2006-06-06|Gesturetek, Inc.|Multiple camera control system|
JP3725460B2|2000-10-06|2005-12-14|株式会社ソニー・コンピュータエンタテインメント|Image processing apparatus, image processing method, recording medium, computer program, semiconductor device|
US7039676B1|2000-10-31|2006-05-02|International Business Machines Corporation|Using video image analysis to automatically transmit gestures over a network in a chat or instant messaging session|
WO2002037471A2|2000-11-03|2002-05-10|Zoesis, Inc.|Interactive character system|
US6690618B2|2001-04-03|2004-02-10|Canesta, Inc.|Method and apparatus for approximating a source position of a sound-causing event for determining an input used in operating an electronic device|
US6539931B2|2001-04-16|2003-04-01|Koninklijke Philips Electronics N.V.|Ball throwing assistant|
US7259747B2|2001-06-05|2007-08-21|Reactrix Systems, Inc.|Interactive video display system|
US7710391B2|2002-05-28|2010-05-04|Matthew Bell|Processing an image utilizing a spatially varying pattern|
US8035612B2|2002-05-28|2011-10-11|Intellectual Ventures Holding 67 Llc|Self-contained interactive video display system|
US7348963B2|2002-05-28|2008-03-25|Reactrix Systems, Inc.|Interactive video display system|
US7170492B2|2002-05-28|2007-01-30|Reactrix Systems, Inc.|Interactive video display system|
WO2003001722A2|2001-06-22|2003-01-03|Canesta, Inc.|Method and system to display a virtual input device|
JP3420221B2|2001-06-29|2003-06-23|株式会社コナミコンピュータエンタテインメント東京|GAME DEVICE AND PROGRAM|
US6937742B2|2001-09-28|2005-08-30|Bellsouth Intellectual Property Corporation|Gesture activated home appliance|
US20030132950A1|2001-11-27|2003-07-17|Fahri Surucu|Detecting, classifying, and interpreting input events based on stimuli in multiple sensory domains|
US20030165048A1|2001-12-07|2003-09-04|Cyrus Bamji|Enhanced light-generated interface for use with electronic devices|
US7340077B2|2002-02-15|2008-03-04|Canesta, Inc.|Gesture recognition system using depth perceptive sensors|
AU2003219926A1|2002-02-26|2003-09-09|Canesta, Inc.|Method and apparatus for recognizing objects|
US7310431B2|2002-04-10|2007-12-18|Canesta, Inc.|Optical methods for remotely measuring objects|
JP2005526971A|2002-04-19|2005-09-08|アイイーイー インターナショナル エレクトロニクス アンド エンジニアリング エス.エイ.|Vehicle safety device|
US7050177B2|2002-05-22|2006-05-23|Canesta, Inc.|Method and apparatus for approximating depth of an object's placement onto a monitored region with applications to virtual interface devices|
US7006236B2|2002-05-22|2006-02-28|Canesta, Inc.|Method and apparatus for approximating depth of an object's placement onto a monitored region with applications to virtual interface devices|
US7489812B2|2002-06-07|2009-02-10|Dynamic Digital Depth Research Pty Ltd.|Conversion and encoding techniques|
US7874917B2|2003-09-15|2011-01-25|Sony Computer Entertainment Inc.|Methods and systems for enabling depth and direction detection when interfacing with a computer program|
US7646372B2|2003-09-15|2010-01-12|Sony Computer Entertainment Inc.|Methods and systems for enabling direction detection when interfacing with a computer program|
US7623115B2|2002-07-27|2009-11-24|Sony Computer Entertainment Inc.|Method and apparatus for light input device|
US7151530B2|2002-08-20|2006-12-19|Canesta, Inc.|System and method for determining an input selected by a user through a virtual interface|
US7576727B2|2002-12-13|2009-08-18|Matthew Bell|Interactive directed light/sound system|
JP4235729B2|2003-02-03|2009-03-11|国立大学法人静岡大学|Distance image sensor|
EP1477924B1|2003-03-31|2007-05-02|HONDA MOTOR CO., Ltd.|Gesture recognition apparatus, method and program|
WO2004107266A1|2003-05-29|2004-12-09|Honda Motor Co., Ltd.|Visual tracking using depth data|
US8072470B2|2003-05-29|2011-12-06|Sony Computer Entertainment Inc.|System and method for providing a real-time three-dimensional interactive environment|
US7620202B2|2003-06-12|2009-11-17|Honda Motor Co., Ltd.|Target orientation estimation using depth sensing|
US7090576B2|2003-06-30|2006-08-15|Microsoft Corporation|Personalized behavior of computer controlled avatars in a virtual reality environment|
KR100680191B1|2003-09-05|2007-02-08|삼성전자주식회사|Proactive user interface system with empathized agent|
US7883415B2|2003-09-15|2011-02-08|Sony Computer Entertainment Inc.|Method and apparatus for adjusting a view of a scene being displayed according to tracked head motion|
WO2005041579A2|2003-10-24|2005-05-06|Reactrix Systems, Inc.|Method and system for processing captured image information in an interactive video display system|
JP3847753B2|2004-01-30|2006-11-22|株式会社ソニー・コンピュータエンタテインメント|Image processing apparatus, image processing method, recording medium, computer program, semiconductor device|
CN100573548C|2004-04-15|2009-12-23|格斯图尔泰克股份有限公司|The method and apparatus of tracking bimanual movements|
US7308112B2|2004-05-14|2007-12-11|Honda Motor Co., Ltd.|Sign based human-machine interaction|
US7704135B2|2004-08-23|2010-04-27|Harrison Jr Shelton E|Integrated game system, method, and device|
US7991220B2|2004-09-01|2011-08-02|Sony Computer Entertainment Inc.|Augmented reality game system using identification information to display a virtual object in association with a position of a real object|
EP1645944B1|2004-10-05|2012-08-15|Sony France S.A.|A content-management interface|
JP4449723B2|2004-12-08|2010-04-14|ソニー株式会社|Image processing apparatus, image processing method, and program|
KR20060070280A|2004-12-20|2006-06-23|한국전자통신연구원|Apparatus and its method of user interface using hand gesture recognition|
US7379566B2|2005-01-07|2008-05-27|Gesturetek, Inc.|Optical flow based tilt sensor|
US7430312B2|2005-01-07|2008-09-30|Gesturetek, Inc.|Creating 3D images of objects by illuminating with infrared patterns|
HUE049974T2|2005-01-07|2020-11-30|Qualcomm Inc|Detecting and tracking objects in images|
US8009871B2|2005-02-08|2011-08-30|Microsoft Corporation|Method and system to segment depth images and to detect shapes in three-dimensionally acquired data|
US7598942B2|2005-02-08|2009-10-06|Oblong Industries, Inc.|System and method for gesture based control system|
KR100688743B1|2005-03-11|2007-03-02|삼성전기주식회사|Manufacturing method of PCB having multilayer embedded passive-chips|
US7317836B2|2005-03-17|2008-01-08|Honda Motor Co., Ltd.|Pose estimation based on critical point analysis|
WO2006124935A2|2005-05-17|2006-11-23|Gesturetek, Inc.|Orientation-sensitive signal output|
AT412882T|2005-08-12|2008-11-15|Mesa Imaging Ag|HIGHLY SENSITIVE, FAST PIXEL FOR APPLICATION IN AN IMAGE SENSOR|
US20080026838A1|2005-08-22|2008-01-31|Dunstan James E|Multi-player non-role-playing virtual world games: method for two-way interaction between participants and multi-player virtual world games|
US7450736B2|2005-10-28|2008-11-11|Honda Motor Co., Ltd.|Monocular tracking of 3D human motion with a coordinated mixture of factor analyzers|
GB2431717A|2005-10-31|2007-05-02|Sony Uk Ltd|Scene analysis|
US7433024B2|2006-02-27|2008-10-07|Prime Sense Ltd.|Range mapping using speckle decorrelation|
US8766983B2|2006-05-07|2014-07-01|Sony Computer Entertainment Inc.|Methods and systems for processing an interchange of real time effects during video communication|
US7721207B2|2006-05-31|2010-05-18|Sony Ericsson Mobile Communications Ab|Camera based control|
WO2008005149A2|2006-06-09|2008-01-10|Brilig Llc|Information collection in multi-participant online communities|
US7701439B2|2006-07-13|2010-04-20|Northrop Grumman Corporation|Gesture recognition simulation system and method|
US20090221368A1|2007-11-28|2009-09-03|Ailive Inc.,|Method and system for creating a shared game space for a networked game|
US8395658B2|2006-09-07|2013-03-12|Sony Computer Entertainment Inc.|Touch screen-like user interface that does not require actual touching|
JP5395323B2|2006-09-29|2014-01-22|ブレインビジョン株式会社|Solid-state image sensor|
WO2008067413A2|2006-11-28|2008-06-05|Attune Interactive, Inc.|Training system using an interactive prompt character|
US20080134102A1|2006-12-05|2008-06-05|Sony Ericsson Mobile Communications Ab|Method and system for detecting movement of an object|
US8351646B2|2006-12-21|2013-01-08|Honda Motor Co., Ltd.|Human pose estimation and tracking using label assignment|
US7412077B2|2006-12-29|2008-08-12|Motorola, Inc.|Apparatus and methods for head pose estimation and head gesture detection|
US8144148B2|2007-02-08|2012-03-27|Edge 3 Technologies Llc|Method and system for vision-based interaction in a virtual environment|
GB0703974D0|2007-03-01|2007-04-11|Sony Comp Entertainment Europe|Entertainment device|
US20080215994A1|2007-03-01|2008-09-04|Phil Harrison|Virtual world avatar control, interactivity and communication interactive messaging|
US7729530B2|2007-03-03|2010-06-01|Sergey Antonov|Method and apparatus for 3-D data input to a personal computer with a multimedia oriented operating system|
KR20100014580A|2007-03-20|2010-02-10|존 카포레일|A system and method for control and training of avatars in an interactive environment|
US7814041B2|2007-03-20|2010-10-12|Caporale John L|System and method for control and training of avatars in an interactive environment|
US20080231686A1|2007-03-22|2008-09-25|Attune Interactive, Inc. |Generation of constructed model for client runtime player using motion points sent over a network|
US8146005B2|2007-08-07|2012-03-27|International Business Machines Corporation|Creating a customized avatar that reflects a user's distinguishable attributes|
US7852262B2|2007-08-16|2010-12-14|Cybernet Systems Corporation|Wireless mobile indoor/outdoor tracking system|
US9292092B2|2007-10-30|2016-03-22|Hewlett-Packard Development Company, L.P.|Interactive display system with collaborative gesture detection|
GB2455316B|2007-12-04|2012-08-15|Sony Corp|Image processing apparatus and method|
US8149210B2|2007-12-31|2012-04-03|Microsoft International Holdings B.V.|Pointing device and method|
CN201254344Y|2008-08-20|2009-06-10|中国农业科学院草原研究所|Plant specimens and seed storage|US20100292007A1|2007-06-26|2010-11-18|Nintendo Of America Inc.|Systems and methods for control device including a movement detector|
US20110162004A1|2009-12-30|2011-06-30|Cevat Yerli|Sensor device for a computer-controlled video entertainment system|
US8484158B2|2010-02-01|2013-07-09|International Business Machines Corporation|Managing information about avatars across virtual worlds|
US8928579B2|2010-02-22|2015-01-06|Andrew David Wilson|Interacting with an omni-directionally projected display|
US9060136B1|2010-06-14|2015-06-16|Open Invention Network, Llc|Advanced gameplay system|
US9002885B2|2010-09-16|2015-04-07|Disney Enterprises, Inc.|Media playback in a virtual environment|
US8797283B2|2010-11-22|2014-08-05|Sony Computer Entertainment America Llc|Method and apparatus for performing user-defined macros|
JP5587800B2|2011-01-12|2014-09-10|株式会社スクウェア・エニックス|Network game system, game device, server device, and program|
CN102609768A|2011-01-19|2012-07-25|华晶科技股份有限公司|Interactive learning system and method thereof|
CN102614663A|2011-01-30|2012-08-01|德信互动科技(北京)有限公司|Device for achieving multiplayer game|
JP4725936B1|2011-02-01|2011-07-13|有限会社Bond|Input support apparatus, input support method, and program|
CN106984041B|2011-02-11|2021-07-06|漳州市舟锋电子科技有限公司|Man-machine interaction control system|
US8761437B2|2011-02-18|2014-06-24|Microsoft Corporation|Motion recognition|
US9857868B2|2011-03-19|2018-01-02|The Board Of Trustees Of The Leland Stanford Junior University|Method and system for ergonomic touch-free interface|
US8702507B2|2011-04-28|2014-04-22|Microsoft Corporation|Manual and camera-based avatar control|
US9259643B2|2011-04-28|2016-02-16|Microsoft Technology Licensing, Llc|Control of separate computer game elements|
US20120295702A1|2011-05-17|2012-11-22|Otero Joby R|Optional animation sequences for character usage in a video game|
US8217945B1|2011-09-02|2012-07-10|Metric Insights, Inc.|Social annotation of a single evolving visual representation of a changing dataset|
US9628843B2|2011-11-21|2017-04-18|Microsoft Technology Licensing, Llc|Methods for controlling electronic devices using gestures|
US9250713B2|2011-12-05|2016-02-02|Microsoft Technology Licensing, Llc|Control exposure|
US10013787B2|2011-12-12|2018-07-03|Faceshift Ag|Method for facial animation|
WO2013097160A1|2011-12-30|2013-07-04|Intel Corporation|Interactive media systems|
US9744440B1|2012-01-12|2017-08-29|Zynga Inc.|Generating game configurations|
US9349131B2|2012-02-02|2016-05-24|Kodak Alaris Inc.|Interactive digital advertising system|
CN103369288B|2012-03-29|2015-12-16|深圳市腾讯计算机系统有限公司|The instant communication method of video Network Based and system|
US10702773B2|2012-03-30|2020-07-07|Videx, Inc.|Systems and methods for providing an interactive avatar|
US9386268B2|2012-04-09|2016-07-05|Intel Corporation|Communication using interactive avatars|
US8471857B1|2012-04-12|2013-06-25|Google Inc.|Changing animation displayed to user|
US9690465B2|2012-06-01|2017-06-27|Microsoft Technology Licensing, Llc|Control of remote applications using companion device|
US9646200B2|2012-06-08|2017-05-09|Qualcomm Incorporated|Fast pose detector|
US9836590B2|2012-06-22|2017-12-05|Microsoft Technology Licensing, Llc|Enhanced accuracy of user presence status determination|
JP6218372B2|2012-11-25|2017-10-25|東芝メディカルシステムズ株式会社|Gesture detection support system for X-ray diagnosis, gesture detection support program for X-ray diagnosis, and X-ray diagnosis apparatus|
WO2014085771A1|2012-11-28|2014-06-05|Vrsim, Inc.|Simulator for skill-oriented training|
KR101707707B1|2012-12-14|2017-02-16|한국전자통신연구원|Method for fiiting virtual items using human body model and system for providing fitting service of virtual items|
CN103871106A|2012-12-14|2014-06-18|韩国电子通信研究院|Method of fitting virtual item using human body model and system for providing fitting service of virtual item|
US20140191939A1|2013-01-09|2014-07-10|Microsoft Corporation|Using nonverbal communication in determining actions|
US9721587B2|2013-01-24|2017-08-01|Microsoft Technology Licensing, Llc|Visual feedback for speech recognition system|
ITPE20130004A1|2013-03-05|2014-09-06|Blue Cinema Tv Sas Di Daniele Balda Cci & C|PROCEDURE FOR THE IMPLEMENTATION OF AN INTERACTIVE AUDIOVISUAL INTERFACE THAT REPRODUCES HUMAN BEINGS|
EP2969078B1|2013-03-15|2021-06-23|Sony Interactive Entertainment Inc.|User-generated recordings of skeletal animations|
US20140282273A1|2013-03-15|2014-09-18|Glen J. Anderson|System and method for assigning voice and gesture command areas|
US9965553B2|2013-05-29|2018-05-08|Philip Scott Lyren|User agent with personality|
US20150199017A1|2014-01-10|2015-07-16|Microsoft Corporation|Coordinated speech and gesture input|
US9883138B2|2014-02-26|2018-01-30|Microsoft Technology Licensing, Llc|Telepresence experience|
JP2015233188A|2014-06-09|2015-12-24|ソニー株式会社|Information processing device, information processing method, and program|
WO2016101124A1|2014-12-23|2016-06-30|Intel Corporation|Sketch selection for rendering 3d model avatar|
US9830728B2|2014-12-23|2017-11-28|Intel Corporation|Augmented facial animation|
EP3410399A1|2014-12-23|2018-12-05|Intel Corporation|Facial gesture driven animation of non-facial features|
EP3037916B1|2014-12-24|2021-02-24|Nokia Technologies Oy|Monitoring|
US20180144651A1|2015-07-13|2018-05-24|Mardoche Abdelhak|Teaching method using pupil's own likeness as a virtual teacher|
US10722802B2|2015-07-24|2020-07-28|Silver Curve Games, Inc.|Augmented reality rhythm game|
US9443192B1|2015-08-30|2016-09-13|Jasmin Cosic|Universal artificial intelligence engine for autonomous computing devices and software applications|
CN105214309B|2015-10-10|2017-07-11|腾讯科技(深圳)有限公司|A kind of information processing method, terminal and computer-readable storage medium|
US10664741B2|2016-01-14|2020-05-26|Samsung Electronics Co., Ltd.|Selecting a behavior of a virtual agent|
US9582762B1|2016-02-05|2017-02-28|Jasmin Cosic|Devices, systems, and methods for learning and using artificially intelligent interactive memories|
US10068612B2|2016-04-08|2018-09-04|DISH Technologies L.L.C.|Systems and methods for generating and presenting virtual experiences|
US10086267B2|2016-08-12|2018-10-02|Microsoft Technology Licensing, Llc|Physical gesture input configuration for interactive software and video games|
US9864933B1|2016-08-23|2018-01-09|Jasmin Cosic|Artificially intelligent systems, devices, and methods for learning and/or using visual surrounding for autonomous object operation|
US10452974B1|2016-11-02|2019-10-22|Jasmin Cosic|Artificially intelligent systems, devices, and methods for learning and/or using a device's circumstances for autonomous device operation|
KR101711041B1|2016-11-08|2017-03-14|주식회사 리얼야구존|Method for playing a screen baseball using a pitching mode|
US10607134B1|2016-12-19|2020-03-31|Jasmin Cosic|Artificially intelligent systems, devices, and methods for learning and/or using an avatar's circumstances for autonomous avatar operation|
JP2018144424A|2017-03-08|2018-09-20|コニカミノルタ株式会社|Image forming system, control method of image forming system, and control program of image forming system|
US10228760B1|2017-05-23|2019-03-12|Visionary Vr, Inc.|System and method for generating a virtual reality scene based on individual asynchronous motion capture recordings|
US10102449B1|2017-11-21|2018-10-16|Jasmin Cosic|Devices, systems, and methods for use in automation|
US10474934B1|2017-11-26|2019-11-12|Jasmin Cosic|Machine learning for computing enabled systems and/or devices|
US10653957B2|2017-12-06|2020-05-19|Universal City Studios Llc|Interactive video game system|
US10916059B2|2017-12-06|2021-02-09|Universal City Studios Llc|Interactive video game system having an augmented virtual representation|
US10402731B1|2017-12-15|2019-09-03|Jasmin Cosic|Machine learning for computer generated objects and/or applications|
US10726248B2|2018-02-01|2020-07-28|Ford Global Technologies, Llc|Validating gesture recognition capabilities of automated systems|
US10776979B2|2018-05-31|2020-09-15|Microsoft Technology Licensing, Llc|Virtual skeleton based on computing device capability profile|
US20200019242A1|2018-07-12|2020-01-16|Microsoft Technology Licensing, Llc|Digital personal expression via wearable device|
US10636218B2|2018-09-24|2020-04-28|Universal City Studios Llc|Augmented reality for an amusement ride|
US10832040B2|2018-09-28|2020-11-10|International Business Machines Corporation|Cognitive rendering of inputs in virtual reality environments|
KR102305177B1|2019-01-22|2021-09-27|티비스톰|Platform for gathering information for ai entities and method by using the same|
US10953334B2|2019-03-27|2021-03-23|Electronic Arts Inc.|Virtual character generation from image or video data|
CN110215683A|2019-07-11|2019-09-10|龙马智芯(珠海横琴)科技有限公司|A kind of electronic game system of role playing game|
JP2021033559A|2019-08-22|2021-03-01|株式会社ソニー・インタラクティブエンタテインメント|Information processor, information processing method and program|
KR20190104928A|2019-08-22|2019-09-11|엘지전자 주식회사|Extended reality device and method for controlling the extended reality device|
US11140360B1|2020-11-10|2021-10-05|Know Systems Corp.|System and method for an interactive digitally rendered avatar of a subject person|
法律状态:
2017-09-12| B25A| Requested transfer of rights approved|Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC (US) |
2019-01-15| B06F| Objections, documents and/or translations needed after an examination request according art. 34 industrial property law|
2019-07-23| B06U| Preliminary requirement: requests with searches performed by other patent offices: suspension of the patent application procedure|
2020-05-19| B06A| Notification to applicant to reply to the report for non-patentability or inadequacy of the application according art. 36 industrial patent law|
2020-09-01| B09A| Decision: intention to grant|
2020-12-15| B16A| Patent or certificate of addition of invention granted|Free format text: PRAZO DE VALIDADE: 10 (DEZ) ANOS CONTADOS A PARTIR DE 15/12/2020, OBSERVADAS AS CONDICOES LEGAIS. |
优先权:
申请号 | 申请日 | 专利标题
US12/501,964|US9159151B2|2009-07-13|2009-07-13|Bringing a visual representation to life via learned input from the user|
US12/501.964|2009-07-13|
PCT/US2010/041637|WO2011008659A2|2009-07-13|2010-07-12|Bringing a visual representation to life via learned input from the user|
[返回顶部]